相关疑难解决方法(0)

使用cJSON读入JSON数组

我试图使用由Dave Gamble编写的cJSON库来读取以下JSON数组:

"items": 
[
    {
        "name": "command",
        "index": "X",
        "optional": "0"
    },
    {
        "name": "status",
        "index": "X",
        "optional": "0"
    }
]
Run Code Online (Sandbox Code Playgroud)

通过阅读他的文档,我找到了阅读单个对象的方法,但没有关于数组的内容,我无法从给出的示例中推测如何做到这一点.

这是我正在尝试的:

cJSON* request_json = NULL;
cJSON* items = cJSON_CreateArray();
cJSON* name = NULL;
cJSON* index = NULL;
cJSON* optional = NULL;

request_json = cJSON_Parse(request_body);

items = cJSON_GetObjectItem(request_json, "items");

name = cJSON_GetObjectItem(items, "name");
index = cJSON_GetObjectItem(items, "index");
optional = cJSON_GetObjectItem(items, "optional");
Run Code Online (Sandbox Code Playgroud)

我知道这是错的,不仅因为它不起作用,而且我无法弄清楚如何使它正确.

显然,我需要循环读取数组中每个索引的所有条目的过程.我不知道我将如何做到这一点,因为我不知道我应该在这个代码中使用索引,或者它是否是正确的开始.有一个cJSON_GetArrayItem(),但它只需要一个数字(可能是一个索引)而没有字符串来表示它想要的字段.

c json cjson

10
推荐指数
3
解决办法
3万
查看次数

标签 统计

c ×1

cjson ×1

json ×1