C JSON 數組解析
C 語言中的 JSON 解析器可用于將 JSON 字符串解析成 C 數據結構。JSON 數組是 JSON 中重要的數據結構之一,本文將介紹如何解析 JSON 數組。
要解析 JSON 數組,需要使用 cJSON 庫,該庫是一個輕量級的 Json 解析器。下面是一個簡單的 JSON 數組:
{ "students": [ {"name": "張三", "age": 20}, {"name": "李四", "age": 21}, {"name": "王五", "age": 22} ] }
在 cJSON 庫中,JSON 數組表示為 cJSON_Array 類型,負責解析 JSON 數組的函數為 cJSON_GetArrayItem。
下面演示如何解析 JSON 數組:
cJSON *root = cJSON_Parse(jsonString); cJSON *students = cJSON_GetObjectItem(root, "students"); if (cJSON_IsArray(students)) { int size = cJSON_GetArraySize(students); for (int i = 0; i < size; i++) { cJSON *student = cJSON_GetArrayItem(students, i); cJSON *name = cJSON_GetObjectItem(student, "name"); cJSON *age = cJSON_GetObjectItem(student, "age"); printf("name: %s, age: %d\n", name->valuestring, age->valueint); } } cJSON_Delete(root);
首先解析 JSON 字符串,然后獲取 students 數組的 cJSON 對象。由于 cJSON_GetArrayItem 返回一個 cJSON 對象,因此需要使用 cJSON_IsArray 函數檢查該對象是否為數組類型。接下來,使用 cJSON_GetArraySize 獲取數組的長度,循環遍歷數組,使用 cJSON_GetArrayItem 獲取每個數組元素,再使用 cJSON_GetObjectItem 獲取數組元素中的 name 和 age 屬性。
最后別忘了刪除 cJSON 對象以釋放內存。