cjson获取数组代码
时间: 2023-12-24 14:05:03 浏览: 52
你可以参考以下示例代码获取 cjson 返回的数组数据:
```
#include <stdio.h>
#include <stdlib.h>
#include "cJSON.h"
int main(int argc, char** argv) {
cJSON *root = NULL;
const char *jsonstr = "[1, 2, 3]";
root = cJSON_Parse(jsonstr);
if (!root) {
printf("Error: %s\n", cJSON_GetErrorPtr());
return EXIT_FAILURE;
}
if (!cJSON_IsArray(root)) {
printf("Error: JSON root is not an array\n");
cJSON_Delete(root);
return EXIT_FAILURE;
}
int arraysize = cJSON_GetArraySize(root);
printf("Array size: %d\n", arraysize);
for (int i = 0; i < arraysize; i++) {
cJSON *item = cJSON_GetArrayItem(root, i);
if (cJSON_IsNumber(item)) {
printf("Item %d: %d\n", i, item->valueint);
}
}
cJSON_Delete(root);
return EXIT_SUCCESS;
}
```
此代码利用 cjson 库将 JSON 字符串 "[1, 2, 3]" 解析为 cJSON 对象,随后通过 cJSON_IsArray 判断该对象是否为数组,再通过 cJSON_GetArraySize 获取数组长度,最后遍历数组元素并输出。