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

c json包解析

林雅南1年前9瀏覽0評論

C中的JSON(JavaScript Object Notation)包是一個非常流行的解析JSON數據格式的工具包。它提供了簡潔的API和易于使用的方法來解析JSON并從中提取數據。使用該包可以讀取和寫入JSON數據,它提供了許多API函數,包括處理JSON對象、數組和值的函數,以及將JSON字符串轉換為C數據結構的函數。

#include <stdio.h>
#include <jansson.h>
int main() {
const char *json_string = "{\"name\":\"John\", \"age\": 25, \"city\": \"New York\"}";
json_t *root;
json_error_t error;
root = json_loads(json_string, 0, &error);
const char *name = json_string_value(json_object_get(root, "name"));
int age = json_integer_value(json_object_get(root, "age"));
const char *city = json_string_value(json_object_get(root, "city"));
printf("Name: %s\n", name);
printf("Age: %d\n", age);
printf("City: %s\n", city);
json_decref(root);
return 0;
}

以上代碼展示了如何使用JSON包從JSON字符串中提取數據。在這個例子中,我們使用json_loads()函數將JSON字符串加載到json_t結構體中。然后,通過json_string_value()和json_integer_value()函數,我們從JSON對象中獲取數據并將其轉換為C數據類型,最后將其打印出來。最后需要使用json_decref()函數釋放root對象的內存以避免內存泄漏。

如果你想從文件中讀取JSON數據,你可以使用json_load_file()函數代替json_loads()函數來加載JSON數據:

json_t *root;
json_error_t error;
root = json_load_file("data.json", 0, &error);
/* 處理JSON數據 */
/* ... */
json_decref(root);

使用JSON包還可以輕松地將C數據結構轉換為JSON字符串。例如,以下代碼將C結構體轉換為JSON字符串:

typedef struct {
const char *name;
int age;
const char *city;
} person_t;
person_t person = {
"John",
25,
"New York"
};
json_t *root;
root = json_pack("{s:s, s:i, s:s}", "name", person.name, "age", person.age, "city", person.city);
char *json_string;
json_string = json_dumps(root, JSON_INDENT(4));
printf("%s\n", json_string);
free(json_string);
json_decref(root);

這里我們定義了一個person_t結構體,使用json_pack()函數將結構體轉換為JSON對象。我們可以稍微調整json_pack()函數的參數以創建JSON數組。最后,使用json_dumps()函數將JSON對象轉換為JSON字符串。我們還可以使用JSON_INDENT()宏指定縮進級別。

結合C語言的強大功能和JSON包的易用性,可以輕松地在項目中處理JSON數據。我們強烈推薦使用JSON包來解析和處理JSON數據。

上一篇vue $brodcas
下一篇c json動態