淘先锋技术网

首页 1 2 3 4 5 6 7

cjson是一款非常方便的json解析库。在c语言中使用cjson解析json数组非常简单。

#include <stdio.h>#include <cjson/cJSON.h>int main() {
char *jsonStr = "[1,\"hello\",{\"name\":\"Tom\",\"age\":18}]";
cJSON *json = cJSON_Parse(jsonStr);
if (json == NULL) {
printf("json解析失败\n");
return 0;
}
// 判断是否是数组
if (cJSON_IsArray(json)) {
int size = cJSON_GetArraySize(json);
int i;
for (i = 0; i< size; ++i) {
cJSON *item = cJSON_GetArrayItem(json, i);
// 判断json数组的类型并打印
switch (item->type) {
case cJSON_Number:
printf("%d\n", item->valueint);
break;
case cJSON_String:
printf("%s\n", item->valuestring);
break;
case cJSON_Object:
printf("%s\n", cJSON_Print(item));
break;
default:
break;
}
}
cJSON_Delete(json);
}
return 0;
}

上面的代码中,首先定义了一个json字符串,然后使用cJSON_Parse函数将其解析成一个cJSON对象。接着,判断这个对象是否是一个json数组。如果是,则遍历数组,获取每一个数组元素,根据元素的类型打印相应的值。

cJSON解析json数组非常简单,只需要判断其类型并获取对应的值即可。