在C語言程序中,有時(shí)需要將JSON格式的字符串轉(zhuǎn)換成JSON對(duì)象數(shù)組來進(jìn)行后續(xù)的操作。這時(shí)我們可以使用第三方庫cJSON來實(shí)現(xiàn)。
cJSON是一個(gè)開源的C語言JSON解析器,在處理JSON數(shù)據(jù)方面非常方便和高效。下面是一個(gè)簡單的代碼示例,用于將JSON字符串轉(zhuǎn)換成JSON對(duì)象數(shù)組:
#include "cJSON.h" #include <stdio.h> int main() { char *json_str = "[{\"name\":\"張三\",\"age\":25},{\"name\":\"李四\",\"age\":30}]"; cJSON *root = cJSON_Parse(json_str); // 獲取數(shù)組大小 int size = cJSON_GetArraySize(root); // 遍歷數(shù)組元素 int i; for (i = 0; i < size; i++) { // 獲取當(dāng)前元素 cJSON *item = cJSON_GetArrayItem(root, i); // 獲取姓名 cJSON *name = cJSON_GetObjectItem(item, "name"); printf("姓名:%s\n", name->valuestring); // 獲取年齡 cJSON *age = cJSON_GetObjectItem(item, "age"); printf("年齡:%d\n", age->valueint); } cJSON_Delete(root); return 0; }
上述代碼首先定義了一個(gè)JSON字符串,然后使用cJSON_Parse函數(shù)將其轉(zhuǎn)換成JSON對(duì)象數(shù)組。利用cJSON_GetArraySize函數(shù)獲取數(shù)組大小,然后利用cJSON_GetArrayItem函數(shù)和循環(huán)遍歷獲取每個(gè)數(shù)組元素。在遍歷過程中,利用cJSON_GetObjectItem獲取姓名和年齡等屬性,并進(jìn)行后續(xù)操作。
最后,我們需要調(diào)用cJSON_Delete函數(shù)釋放內(nèi)存。這樣就完成了將JSON字符串轉(zhuǎn)換成JSON對(duì)象數(shù)組的操作。