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

c 將json轉化成list

謝彥文1年前9瀏覽0評論

c語言中,將json轉化成list是一個常見的需求。但是c語言不像其他語言有內置的json解析庫。因此,我們需要使用第三方庫來實現這一功能。在本文中,我們將介紹如何使用cJSON庫將json轉化成list。

#include <stdio.h>
#include <cJSON.h>
int main(void) {
const char* json = "{ \"name\":\"Jhon\", \"age\":25, \"hobby\":[\"reading\", \"music\"] }";
cJSON* root = cJSON_Parse(json);
cJSON* name = cJSON_GetObjectItem(root, "name");
cJSON* age = cJSON_GetObjectItem(root, "age");
cJSON* hobby = cJSON_GetObjectItem(root, "hobby");
printf("name: %s\n", name->valuestring);
printf("age: %d\n", age->valueint);
printf("hobby:\n");
int i = 0;
cJSON* h;
cJSON_ArrayForEach(h, hobby) {
printf("  %d. %s\n", i++, h->valuestring);
}
cJSON_Delete(root);
return 0;
}

首先,我們需要在項目中引入cJSON的頭文件。

#include <cJSON.h>

接著,我們需要準備要解析的json字符串。在本例中,我們將解析如下json字符串:

const char* json = "{ \"name\":\"Jhon\", \"age\":25, \"hobby\":[\"reading\", \"music\"] }";

我們可以使用cJSON_Parse()函數將上述字符串解析成一個cJSON對象。

cJSON* root = cJSON_Parse(json);

接著,我們可以使用cJSON_GetObjectItem()函數獲取json對象中的屬性。例如,我們可以獲取name屬性的值:

cJSON* name = cJSON_GetObjectItem(root, "name");

我們也可以獲取hobby屬性的值。由于hobby是一個數組,我們需要使用cJSON_ArrayForEach()函數遍歷數組中的所有元素:

cJSON* hobby = cJSON_GetObjectItem(root, "hobby");
int i = 0;
cJSON* h;
cJSON_ArrayForEach(h, hobby) {
printf("  %d. %s\n", i++, h->valuestring);
}

在解析完成后,我們需要使用cJSON_Delete()函數釋放資源:

cJSON_Delete(root);

到此為止,我們已經成功地將json轉化成了list。