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

C 解析json多層

方一強2年前7瀏覽0評論

在C語言中解析json多層,需要用到相應的JSON庫。

例子代碼如下:
#include#include#include#include "cJSON.h"
int main()
{
char* json_string = "{\"name\":\"Jack\", \"age\":20, \"hobby\":{\"music\":\"rock\", \"food\":\"pizza\"}}";
cJSON* root = cJSON_Parse(json_string);
if (!root) {
printf("Error before: [%s]\n", cJSON_GetErrorPtr());
return 1;
}
cJSON* name = cJSON_GetObjectItem(root, "name");
if (name)
printf("name: %s\n", name->valuestring);
cJSON* age = cJSON_GetObjectItem(root, "age");
if (age)
printf("age: %d\n", age->valueint);
cJSON* hobby = cJSON_GetObjectItem(root, "hobby");
if (hobby) {
cJSON* music = cJSON_GetObjectItem(hobby, "music");
if (music)
printf("music: %s\n", music->valuestring);
cJSON* food = cJSON_GetObjectItem(hobby, "food");
if (food)
printf("food: %s\n", food->valuestring);
}
cJSON_Delete(root);
return 0;
}

其中,我們使用了cJSON這個JSON庫,它包括解析JSON的功能,同時也可以生成JSON。

在代碼中,我們首先在一個json_string中存儲要解析的JSON字符串。

char* json_string = "{\"name\":\"Jack\", \"age\":20, \"hobby\":{\"music\":\"rock\", \"food\":\"pizza\"}}";

接下來,我們通過cJSON_Parse()函數將JSON字符串解析成cJSON結構體。

cJSON* root = cJSON_Parse(json_string);

如果解析失敗,返回null,我們需要檢查返回值,并使用cJSON_GetErrorPtr()函數獲取失敗信息。

if (!root) {
printf("Error before: [%s]\n", cJSON_GetErrorPtr());
return 1;
}

我們可以通過cJSON_GetObjectItem()函數獲取JSON中的鍵值對。

cJSON* name = cJSON_GetObjectItem(root, "name");
if (name)
printf("name: %s\n", name->valuestring);

其中,valuestring表示字符串值,valueint表示整數值。

對于多層JSON,則可以通過嵌套使用cJSON_GetObjectItem()函數來獲取值。

cJSON* hobby = cJSON_GetObjectItem(root, "hobby");
if (hobby) {
cJSON* music = cJSON_GetObjectItem(hobby, "music");
if (music)
printf("music: %s\n", music->valuestring);
cJSON* food = cJSON_GetObjectItem(hobby, "food");
if (food)
printf("food: %s\n", food->valuestring);
}

最后,使用cJSON_Delete()函數釋放內存。

cJSON_Delete(root);
上一篇vue302請求
下一篇date轉json