C語言中有很多的庫可以用來解析JSON格式的數(shù)據(jù),其中最為常用的是cJSON。這個庫提供的API簡單易用,可以方便地將JSON數(shù)據(jù)轉(zhuǎn)成具體的C數(shù)據(jù)類型,也可以將C數(shù)據(jù)類型轉(zhuǎn)成JSON數(shù)據(jù)。但是,對于復(fù)雜的JSON數(shù)據(jù),我們很容易遇到多條JSON數(shù)據(jù)的情況,此時該怎么處理呢?
// 示例JSON數(shù)據(jù) char* json_data = "[{\"name\":\"Alice\",\"age\":20},{\"name\":\"Bob\",\"age\":25}]"; // 定義cJSON對象 cJSON* root = NULL; cJSON* info = NULL; cJSON* item = NULL; // 解析JSON數(shù)據(jù) root = cJSON_Parse(json_data); // 獲取JSON數(shù)組 info = cJSON_GetArrayItem(root, 0); // 遍歷JSON數(shù)組 for (int i = 0; i< cJSON_GetArraySize(info); i++) { item = cJSON_GetArrayItem(info, i); char* name = cJSON_GetString(item, "name"); int age = cJSON_GetNumber(item, "age"); // 處理數(shù)據(jù) } // 釋放cJSON對象 cJSON_Delete(root);
以上是使用cJSON解析多條JSON數(shù)據(jù)的簡單示例,解析過程中需要注意的是要使用cJSON_GetArrayItem獲取到JSON數(shù)組,在遍歷數(shù)組時使用cJSON_GetArrayItem獲取每個JSON對象,然后使用cJSON_GetString和cJSON_GetNumber獲取具體的值。解析完畢后需要使用cJSON_Delete釋放cJSON對象。
上一篇vue前后臺nginx
下一篇vue刷題實例