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

c json解析成liststring

隨著互聯(lián)網(wǎng)和移動(dòng)互聯(lián)網(wǎng)的迅猛發(fā)展,各種前后端技術(shù)層出不窮。而在這些技術(shù)中,json成為了一個(gè)不可或缺的角色。因此,我們需要掌握json的解析方法來(lái)處理這些數(shù)據(jù)。下面,我們來(lái)講一下如何將c語(yǔ)言中的json解析成list string。

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include "cJSON.h"
int main()
{
char* json_str = "{\"name\":\"zhangsan\",\"age\":18,\"hobbies\":[\"reading\",\"running\",\"swimming\"]}";
cJSON* root = cJSON_Parse(json_str);
if (!root)
{
printf("json parse error\n");
return -1;
}
cJSON* hobbies = cJSON_GetObjectItem(root, "hobbies");
if (!hobbies)
{
printf("json parse error\n");
cJSON_Delete(root);
return -1;
}
if (cJSON_IsArray(hobbies))
{
int size = cJSON_GetArraySize(hobbies);
if (size >0)
{
char** list = (char**)malloc(sizeof(char*) * size);
memset(list, 0, sizeof(char*) * size);
int i = 0;
cJSON* hobby = NULL;
cJSON_ArrayForEach(hobby, hobbies)
{
char* str = cJSON_PrintUnformatted(hobby);
if (str)
{
list[i++] = str;
}
}
for (i = 0; i< size; i++)
{
printf("%s\n", list[i]);
}
for (i = 0; i< size; i++)
{
if (list[i])
{
free(list[i]);
}
}
free(list);
}
}
cJSON_Delete(root);
return 0;
}

上面是一個(gè)使用cJSON庫(kù)將json解析成list string的代碼示例。首先,我們需要將json字符串解析成一個(gè)cJSON格式的根節(jié)點(diǎn)。之后,我們可以通過(guò)cJSON_GetObjectItem()函數(shù)獲取到我們需要解析的數(shù)組項(xiàng)。在本例中,我們需要獲取"hobbies"數(shù)組。

然后,我們需要使用cJSON_IsArray()函數(shù)判斷該項(xiàng)是否為一個(gè)數(shù)組類型。如果是,則可以使用cJSON_GetArraySize()函數(shù)獲取數(shù)組的大小。通過(guò)cJSON_ArrayForEach()函數(shù)遍歷數(shù)組中的每一項(xiàng),將其轉(zhuǎn)化為一個(gè)字符串并存放在char**類型的list中。

最后,我們輸出list中的每一個(gè)字符串,并釋放內(nèi)存。