在C語言中,處理JSON格式的數(shù)據(jù)是一種常見的需求,而其中經(jīng)常會遇到解析數(shù)組對象嵌套數(shù)組的情況。本文將介紹如何使用C語言解析JSON數(shù)組對象數(shù)組。
首先需要安裝一個JSON解析庫,例如cJSON,它可以很方便地解析JSON格式字符串。
// 代碼示例 #include <stdio.h> #include <cJSON.h> int main() { char str[] = "{\"data\":[{\"name\":\"Tom\",\"age\":20,\"interests\":[\"reading\",\"music\"]}, {\"name\":\"Jerry\",\"age\":22,\"interests\":[\"movie\",\"sports\"]}]}"; // JSON字符串 cJSON *root = cJSON_Parse(str); // 解析JSON字符串 cJSON *data = cJSON_GetObjectItem(root, "data"); // 獲取"date"對象 for (int i = 0; i < cJSON_GetArraySize(data); i++) { cJSON *item = cJSON_GetArrayItem(data, i); // 獲取對象數(shù)組中的每個對象 printf("name: %s, age: %d, interests: [", cJSON_GetObjectItem(item, "name")->valuestring, cJSON_GetObjectItem(item, "age")->valueint); cJSON *interests = cJSON_GetObjectItem(item, "interests"); // 獲取數(shù)組 for (int j = 0; j < cJSON_GetArraySize(interests); j++) { cJSON *interest = cJSON_GetArrayItem(interests, j); // 獲取數(shù)組中的每個對象 printf("%s%s", interest->valuestring, j + 1 < cJSON_GetArraySize(interests) ? ", " : ""); // 輸出每個對象的valuestring和逗號 } printf("]\n"); } cJSON_Delete(root); // 釋放內(nèi)存 return 0; }
在上面的代碼中,我們解析了一個包含兩個對象的數(shù)組,每個對象里面都有一個嵌套的數(shù)組。通過
通過以上方法解析JSON數(shù)組對象數(shù)組的方法,可以有效地處理復(fù)雜的JSON數(shù)據(jù),對于后端開發(fā)和數(shù)據(jù)處理都是非常有用的。