idealvin / coost

A tiny boost library in C++11.
Other
3.97k stars 561 forks source link

json如何输出这种格式?转义 #353

Closed marklove5102 closed 8 months ago

marklove5102 commented 9 months ago

测试代码

co::Json h() {
    co::Json v;
        v.add_member("name", "vin")
        .add_member("age", 23)
        .add_member("num", co::Json().push_back(1).push_back(2).push_back(3));
        co::Json o3;
        for (size_t i = 0; i < 10; i++)
        {
               co::Json o;
               o.add_member("o1", 3.14);
               o.add_member("o2", fastring(i, '我')); 
               o3.push_back(o);
        }
         co::Json oo;
        //oo.add_member("o3", o3); 
        //v.add_member("o", oo);
        co::Json b(nullptr); // null
        v.add_member("description",b);
        v.add_member("category_name","linux新闻");
        v.add_member("o3", o3);
    return v;
}

结果

{
    "name": "vin",
    "age": 23,
    "num": [
        1,
        2,
        3
    ],
    "description": null,
    "category_name": "linux新闻",
    "o3": [
        {
            "o1": 3.14,
            "o2": ""
        },
        {
            "o1": 3.14,
            "o2": "�"
        },
        {
            "o1": 3.14,
            "o2": "��"
        },
        {
            "o1": 3.14,
            "o2": "���"
        },
        {
            "o1": 3.14,
            "o2": "����"
        },
        {
            "o1": 3.14,
            "o2": "�����"
        },
        {
            "o1": 3.14,
            "o2": "������"
        },
        {
            "o1": 3.14,
            "o2": "�������"
        },
        {
            "o1": 3.14,
            "o2": "��������"
        },
        {
            "o1": 3.14,
            "o2": "���������"
        }
    ]
}

中文编码转义

"category_name": "linux\u65b0\u95fb",

我要的格式

{
    "name": "vin",
    "age": 23,
    "num": [
        1,
        2,
        3
    ],
    "description": null,
    "category_name": "linux\u65b0\u95fb"
}

https://www.json.cn/ ☐保留转义 我目前用的

include "SQLiteCpp/SQLiteCpp.h"

没有转义问题

https://coostdocs.github.io/en/co/json/

idealvin commented 8 months ago

json标准没有要求保留unicode转义吧?其他json库应该输出一样的

marklove5102 commented 8 months ago

问题不大我继续用SQLiteCpp。