色婷婷狠狠18禁久久YY,CHINESE性内射高清国产,国产女人18毛片水真多1,国产AV在线观看

c 解析json為數組對象

錢浩然1年前9瀏覽0評論

在C語言中,如果我們要解析JSON數據為數組對象,就需要借助第三方庫來處理。近年來,最流行的JSON解析庫就是cJSON了。cJSON是一個輕量級的C語言JSON解析器,它可以將JSON數據解析為C語言中的對象,支持讀和寫JSON數據,使用簡單方便。

在解析JSON數據為數組對象時,我們需要定義一個cJSON類型的指針,并調用cJSON_Parse函數來解析JSON字符串。下面是一個完整的例子:

#include <stdio.h>
#include <cjson/cJSON.h>
int main()
{
char *json_str = "[{ \"name\":\"Alice\", \"age\":20 }, { \"name\":\"Bob\", \"age\":25 }]";
cJSON *root = cJSON_Parse(json_str);
if (root == NULL)
{
printf("JSON解析失敗\n");
return -1;
}
int array_size = cJSON_GetArraySize(root);
for (int i = 0; i < array_size; i++)
{
cJSON *obj = cJSON_GetArrayItem(root, i);
char *name = cJSON_GetObjectItem(obj, "name")->valuestring;
int age = cJSON_GetObjectItem(obj, "age")->valueint;
printf("姓名:%s,年齡:%d\n", name, age);
}
cJSON_Delete(root);
return 0;
}

在上面的代碼中,我們首先定義了一個JSON字符串,它包含了兩個對象,每個對象有一個name和一個age屬性。然后我們調用cJSON_Parse函數來解析JSON數據,如果解析失敗則返回NULL。

接著,我們使用cJSON_GetArraySize函數來獲取數組的長度,然后使用循環來遍歷數組中的每一個元素。對于每個元素,我們可以使用cJSON_GetArrayItem函數來獲取它的指針,并使用cJSON_GetObjectItem函數來獲取它的屬性值。在本例中,我們分別獲取了name和age兩個屬性,并將它們轉換成C語言中的字符串和整數。

最后,我們釋放了cJSON對象的內存,并返回了0,表示程序正常執行完畢。