在使用c語言解析json數(shù)據(jù)時(shí),經(jīng)常需要遍歷json數(shù)組。本文將介紹如何使用c語言遍歷json數(shù)組。
//示例json數(shù)組 { "name":"張三", "age":22, "scores":[70,80,90] }
首先,我們需要將json數(shù)據(jù)解析成一個(gè)c語言的結(jié)構(gòu)體。下面是一個(gè)使用cJSON庫解析json數(shù)據(jù)的示例:
#include "cJSON.h" char *json_data = "{...}"; //json數(shù)據(jù)字符串 cJSON *root = cJSON_Parse(json_data); //解析json數(shù)據(jù)
接著,我們需要獲取json中的scores數(shù)組:
cJSON *scores = cJSON_GetObjectItem(root, "scores");
接下來,我們就可以遍歷scores數(shù)組了。cJSON庫提供了一個(gè)遍歷json數(shù)組的函數(shù)cJSON_ArrayForEach():
cJSON *item = NULL; int i = 0; cJSON_ArrayForEach(item, scores) { printf("scores[%d]: %d\n", i++, item->valueint); //打印scores數(shù)組中每個(gè)元素的值 }
最后,我們需要釋放解析出來的json結(jié)構(gòu)體:
cJSON_Delete(root);
這就是c語言遍歷json數(shù)組的方法。需要注意的是,在遍歷前必須先將json數(shù)據(jù)解析成一個(gè)c語言的結(jié)構(gòu)體。