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

c 返回json對象數組

錢良釵2年前9瀏覽0評論

在C語言中,獲取數據的方式可以是從文件中讀取,也可以是從網絡中獲取。在API中,一般會返回一串json格式的數據,包含了我們需要的信息。那么如何將這串json數據解析成為我們需要的數據呢?這時候我們需要使用到第三方庫。

C語言中,常用的第三方庫有如下幾個,分別為:

- cJSON
- json-c
- Jansson

cJSON是一款輕量級的JSON解析器,用于解析JSON數據并將其轉換為C結構。

//示例代碼
#include#include#include "cJSON.h"
typedef struct {
int id;
char *name;
char *desc;
} Item;
void print_item(Item *item) {
printf("%d: %s - %s\n", item->id, item->name, item->desc);
}
int main() {
char *json_str = "[
{\"id\": 1, \"name\": \"item1\", \"desc\": \"this is item1\"},
{\"id\": 2, \"name\": \"item2\", \"desc\": \"this is item2\"},
{\"id\": 3, \"name\": \"item3\", \"desc\": \"this is item3\"}
]";
cJSON *json = cJSON_Parse(json_str);
cJSON *item = NULL;
cJSON_ArrayForEach(item, json) {
Item *new_item = (Item*)malloc(sizeof(Item));
new_item->id = cJSON_GetObjectItem(item, "id")->valueint;
new_item->name = cJSON_GetObjectItem(item, "name")->valuestring;
new_item->desc = cJSON_GetObjectItem(item, "desc")->valuestring;
print_item(new_item);
}
cJSON_Delete(json);
return 0;
}

上面的代碼演示了如何將一個json對象數組解析成為C結構。