欧美一区二区三区,国内熟女精品熟女A片视频小说,日本av网,小鲜肉男男GAY做受XXX网站

c 解多層json數組

老白2年前9瀏覽0評論

在使用C語言解析JSON數組時,我們經常會遇到多層嵌套的情況。如何正確解析多層JSON數組呢?我們來看一下具體的實現。

char json_str[] = "{ \"list\": [ { \"id\": 1, \"name\": \"apple\", \"price\": 5.0 }, { \"id\": 2, \"name\": \"banana\", \"price\": 3.0 } ] }";
cJSON* root = cJSON_Parse(json_str);
cJSON* list = cJSON_GetObjectItem(root, "list");
int list_size = cJSON_GetArraySize(list);
for(int i = 0; i< list_size; i++)
{
cJSON* item = cJSON_GetArrayItem(list, i);
int id = cJSON_GetObjectItem(item, "id")->valueint;
char* name = cJSON_GetObjectItem(item, "name")->valuestring;
double price = cJSON_GetObjectItem(item, "price")->valuedouble;
printf("id: %d, name: %s, price: %f \n", id, name, price);
}
cJSON_Delete(root);

代碼中首先使用cJSON_Parse()函數將JSON字符串解析成cJSON對象,然后使用cJSON_GetObjectItem()函數獲取到JSON數組中的對象cJSON* list。

接著使用cJSON_GetArraySize()函數獲取到JSON數組的大小,使用循環遍歷JSON數組。在循環中,先使用cJSON_GetArrayItem()函數獲取數組中的對象cJSON* item,然后使用cJSON_GetObjectItem()函數獲取對象中的各元素值。

最后記得使用cJSON_Delete()函數釋放內存。