對于C語言中的JSON數組轉對象數組,我們可以使用 cJSON 這個開源庫來完成。cJSON 可以很方便地解析JSON字符串,將其轉換為C語言中的結構體、數組等各種數據類型。
首先,我們需要在代碼中引入 cJSON 的頭文件:
#include "cJSON.h"
接著,我們需要使用 cJSON_Parse() 函數將JSON字符串轉換成 cJSON 對象:
char* json_str = "[{\"name\":\"Tom\",\"age\":22},{\"name\":\"James\",\"age\":18}]"; cJSON* json = cJSON_Parse(json_str);
上面的代碼將傳入的 JSON 字符串解析為一個 cJSON 對象。這個 cJSON 對象可以包含一個 JSON 數組,也可以包含一個 JSON 對象。
如果我們知道 JSON 對象中包含一個 JSON 數組,可以使用 cJSON_GetArrayItem() 函數獲取 JSON 數組中的每一個元素。通過遍歷數組,我們可以將數組中的每個 JSON 對象轉換為 C 語言中的結構體:
int array_size = cJSON_GetArraySize(json); //獲取數組大小 for (int i = 0; i< array_size; i++) { cJSON* item = cJSON_GetArrayItem(json, i); //獲取數組元素 char* name = cJSON_GetObjectItem(item, "name")->valuestring; int age = cJSON_GetObjectItem(item, "age")->valueint; //將 name 和 age 轉換為結構體中的字段 //... }
上面的示例代碼中,我們使用 cJSON_GetArrayItem() 函數獲取 JSON 數組中的每個元素。然后,使用 cJSON_GetObjectItem() 函數獲取 JSON 對象中的每個字段,最后將字段轉換為 C 語言中的結構體字段。
最后,別忘了要釋放 cJSON 對象的內存,防止出現內存泄漏現象。
cJSON_Delete(json);
以上就是關于 C 語言中的 JSON 數組轉對象數組的基本介紹和示例代碼,希望能對大家有所幫助。
上一篇c json 數組處理
下一篇mysql分組隨機取一條