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

c json解析成liststring

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

隨著互聯網和移動互聯網的迅猛發展,各種前后端技術層出不窮。而在這些技術中,json成為了一個不可或缺的角色。因此,我們需要掌握json的解析方法來處理這些數據。下面,我們來講一下如何將c語言中的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;
}

上面是一個使用cJSON庫將json解析成list string的代碼示例。首先,我們需要將json字符串解析成一個cJSON格式的根節點。之后,我們可以通過cJSON_GetObjectItem()函數獲取到我們需要解析的數組項。在本例中,我們需要獲取"hobbies"數組。

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

最后,我們輸出list中的每一個字符串,并釋放內存。