在C語言中,解析JSON格式的數(shù)據(jù)是一項(xiàng)非常重要的工作。其中,解析JSON多維數(shù)組更是一項(xiàng)常見的需求。
可以使用一些第三方庫,如cJSON、ujson等來完成JSON數(shù)據(jù)的解析。這里,我們以cJSON為例來演示在C語言中如何解析JSON多維數(shù)組。
// JSON數(shù)據(jù) { "name": "張三", "age": 18, "courses": [ { "name": "數(shù)學(xué)", "score": 90 }, { "name": "語文", "score": 80 } ] } // C語言代碼 #include <stdio.h> #include <cJSON.h> int main() { const char* json = "{\"name\":\"張三\",\"age\":18,\"courses\":[{\"name\":\"數(shù)學(xué)\",\"score\":90},{\"name\":\"語文\",\"score\":80}]}"; cJSON* root = cJSON_Parse(json); // 解析JSON數(shù)據(jù) if (root != NULL) { cJSON* courses = cJSON_GetObjectItem(root, "courses"); // 獲取courses數(shù)組 int size = cJSON_GetArraySize(courses); // 獲取數(shù)組長度 for (int i = 0; i< size; i++) { cJSON* course = cJSON_GetArrayItem(courses, i); // 獲取單個(gè)course對(duì)象 cJSON* name = cJSON_GetObjectItem(course, "name"); // 獲取名稱 cJSON* score = cJSON_GetObjectItem(course, "score"); // 獲取分?jǐn)?shù) printf("課程名稱:%s,成績:%d\n", name->valuestring, score->valueint); } cJSON_Delete(root); // 釋放內(nèi)存 } return 0; }
通過cJSON庫提供的函數(shù),我們可以非常容易地獲取JSON數(shù)據(jù)中的多維數(shù)組,并遍歷其中的每個(gè)元素。