欧美一区二区三区,国内熟女精品熟女A片视频小说,日本av网,小鲜肉男男GAY做受XXX网站

c 中解析復雜的json

錢瀠龍2年前7瀏覽0評論

在C語言中解析復雜的JSON數據結構可以使用第三方庫,比如cJSON。cJSON是一個輕量級的庫,可以在嵌入式系統(tǒng)中使用。接下來,我們將會通過一些代碼示例來展示如何使用cJSON庫解析復雜的JSON數據。

首先,我們需要創(chuàng)建一個JSON對象。以下代碼創(chuàng)建了一個名為root的JSON對象:

cJSON *root = cJSON_CreateObject();

一旦我們有了一個JSON對象,就可以向其中添加屬性和值。以下代碼向root對象添加了一個名為“name”的屬性和一個字符串值“John”:

cJSON_AddItemToObject(root, "name", cJSON_CreateString("John"));

接下來,我們向root對象添加一個名為“age”的屬性和一個數字值30,一個名為“pets”的屬性和一個數組,以及一個名為“address”的屬性和一個嵌套的JSON對象。代碼如下:

cJSON_AddItemToObject(root, "age", cJSON_CreateNumber(30));
cJSON_AddItemToObject(root, "pets", cJSON_CreateArray());
cJSON_AddItemToObject(root, "address", cJSON_CreateObject());

現在,我們有了一個包含復雜屬性的JSON對象。接下來,我們將解析JSON對象中的屬性和值。以下代碼解析了名為“name”的屬性的字符串值:

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

接下來,我們解析名為“age”的屬性的數字值:

cJSON *age = cJSON_GetObjectItem(root, "age");
if (age != NULL)
{
printf("%d\n", age->valueint);
}

要解析名為“pets”的屬性的數組,我們需要使用cJSON_GetArrayItem函數。以下代碼解析了第一個值:

cJSON *pets = cJSON_GetObjectItem(root, "pets");
if (pets != NULL)
{
cJSON *pet1 = cJSON_GetArrayItem(pets, 0);
if (pet1 != NULL)
{
printf("%s\n", pet1->valuestring);
}
}

最后,我們來解析名為“address”的屬性的嵌套JSON對象。以下代碼解析了名為“city”的屬性的字符串值:

cJSON *address = cJSON_GetObjectItem(root, "address");
if (address != NULL)
{
cJSON *city = cJSON_GetObjectItem(address, "city");
if (city != NULL)
{
printf("%s\n", city->valuestring);
}
}

以上是一個簡單的如何解析復雜JSON數據結構的示例。cJSON庫可以輕松地解析更復雜和嵌套的JSON。