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

c json數組轉集合

劉柏宏2年前9瀏覽0評論

在C語言編程中,經常需要將JSON數組轉換為集合。集合是一種常見的數據結構,可以存儲多個元素并提供各種操作。JSON是一種輕量級的數據交換格式,常用于數據傳輸和存儲。

轉換JSON數組到集合的過程可以使用cJSON庫完成。cJSON是一個簡單易用的JSON解析器和生成器,它可以將JSON字符串轉換為C語言中的各種數據類型,包括數組和集合。

#include <stdio.h>
#include <cJSON.h>
int main()
{
char *json_str = "{\"students\":[{\"name\":\"Alice\",\"age\":18},{\"name\":\"Bob\",\"age\":19},{\"name\":\"Cathy\",\"age\":20}]}";
cJSON *root = cJSON_Parse(json_str);
if (root == NULL)
{
printf("parse failed!\n");
return 1;
}
cJSON *students = cJSON_GetObjectItem(root, "students");
int size = cJSON_GetArraySize(students);
for (int i = 0; i< size; i++)
{
cJSON *student = cJSON_GetArrayItem(students, i);
cJSON *name = cJSON_GetObjectItem(student, "name");
cJSON *age = cJSON_GetObjectItem(student, "age");
printf("name: %s, age: %d\n", cJSON_GetStringValue(name), age->valueint);
}
cJSON_Delete(root);
return 0;
}

上面的代碼演示了如何將JSON數組轉換為集合。首先,我們定義一個JSON字符串,其中包含一個名為“students”的數組,每個數組項都包含一個名為“name”的字符串和一個名為“age”的整數。然后,我們使用cJSON_Parse函數將JSON字符串解析為一個cJSON對象,如果解析失敗則返回NULL。接下來,我們使用cJSON_GetObjectItem函數獲取“students”數組的對象,然后使用cJSON_GetArraySize獲取數組長度,使用循環遍歷每個數組項。在循環中,我們使用cJSON_GetArrayItem獲取單個數組項,再使用cJSON_GetObjectItem獲取其包含的“name”和“age”字段,最后將這些字段的值轉換為C語言中的對應類型并輸出。

最后,我們使用cJSON_Delete函數釋放cJSON對象所占用的內存。