ibireme / yyjson

The fastest JSON library in C
https://ibireme.github.io/yyjson/doc/doxygen/html/
MIT License
3.07k stars 267 forks source link

What is the API for creating arrays in json objects? #128

Closed BedRockJie closed 1 year ago

BedRockJie commented 1 year ago

for example:

"parts": [
        {
            "slotId": 123,
            "modelId": 3323,
            "section": [
                {
                    "id": 0,
                    "type": 0,
                    "action": 0
                }
            ]
        },

如何正确的调用接口,依次创建如上所属关系json,可以提供一个arr 和 obj 相互嵌套创建的实例吗?

我的代码如下,经过实测不能生成我想要的json:

yyjson_mut_val *parts = yyjson_mut_obj_get(obj, "parts");
yyjson_mut_val *cardobj = yyjson_mut_arr_add_obj(doc, parts);
yyjson_mut_obj_add_uint(doc, cardobj, "modelId", 123123);
yyjson_mut_obj_add_uint(doc, cardobj, "slotId", 222333);
/* 到这里可以 如期生成*/
yyjson_mut_val *info;
yyjson_mut_obj_add_val(doc, cardobj, "section", info);
/*此处创建的val不能添加到文件中,*/

/* 2  方法2 */
yyjson_mut_val *key = yyjson_mut_str(doc, "section");
yyjson_mut_val *value = yyjson_mut_arr_add_obj(doc, key);
yyjson_mut_obj_add_uint(doc, value, "id", 0);

我在文档中没有找到, arr单独创建的方法,可以提供下方法吗?

ibireme commented 1 year ago

The documentation for creating array: https://github.com/ibireme/yyjson/blob/master/doc/API.md#json-array-creation

The info value is not initialized, so the result is undefined. You should initialize it with yyjson_mut_val *info = yyjson_mut_arr(doc);

BedRockJie commented 1 year ago

Thank you The doc is mamory manager.