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数组非常简单,只需要判断其类型并获取对应的值即可。