C JSON對象數組解析,指的是將一個包含多個C JSON對象的數組進行解析。
// 示例 JSON 數據 { "people": [ { "name": "Tom", "age": 20, "gender": "male" }, { "name": "Alice", "age": 25, "gender": "female" } ] }
在上述 JSON 數據中,包含一個名為 "people" 的數組,其內部存儲了兩個 JSON 對象,每個對象具有三個鍵值對,分別是 "name"、"age" 和 "gender"。
為了解析這種數據結構,可以使用 cJSON 庫中的 cJSON_GetObjectItem 函數來對數組進行逐一遍歷,獲取到每個 JSON 對象。
// 解析示例代碼 cJSON *json = cJSON_Parse(text); // text 為 JSON 數據字符串 if (json) { cJSON *people = cJSON_GetObjectItem(json, "people"); // 獲取數組對象 if (people) { int arraySize = cJSON_GetArraySize(people); // 獲取數組長度 for (int i = 0; i< arraySize; i++) { cJSON *person = cJSON_GetArrayItem(people, i); // 獲取數組中的每個對象 cJSON *name = cJSON_GetObjectItem(person, "name"); // 獲取鍵值為 "name" 的值 cJSON *age = cJSON_GetObjectItem(person, "age"); // 獲取鍵值為 "age" 的值 cJSON *gender = cJSON_GetObjectItem(person, "gender"); // 獲取鍵值為 "gender" 的值 // 將獲取到的值進行處理 // ... } } cJSON_Delete(json); // 釋放 cJSON 占用的內存 }
在解析示例代碼中,首先通過 cJSON_Parse 函數將 JSON 數據字符串轉換為 cJSON 對象,然后獲取到 "people" 數組對象,并通過 cJSON_GetArraySize 函數獲取到數組長度。
接著,在循環遍歷數組時,調用 cJSON_GetArrayItem 函數獲取到數組中的每個 JSON 對象,并通過 cJSON_GetObjectItem 函數獲取到該對象的具體鍵值對應的值。
最后,將獲取到的值進行處理,如打印輸出或存儲到數據結構中等,同時,別忘記使用 cJSON_Delete 函數釋放 cJSON 占用的內存。
上一篇mysql到底有多少鎖
下一篇html彈窗代碼右下角