我试图使用由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(),但它只需要一个数字(可能是一个索引)而没有字符串来表示它想要的字段.