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

c json 轉換成list

林雅南2年前7瀏覽0評論

在C語言編程中,JSON格式的數據處理是一個非常普遍的需求。由于JSON格式的數據比較靈活,可以用來表示各種各樣的數據結構,所以在程序開發中經常會遇到需要將JSON格式的數據轉換成列表的情況。下面將介紹如何用C語言實現JSON轉換成列表。

#include <stdlib.h>
#include <stdio.h>
#include <string.h>
#include <jansson.h>
int main() {
const char *json_string =
"{"
"\"name\": \"Tom\","
"\"age\": 25,"
"\"address\": {"
"\"province\": \"Beijing\","
"\"city\": \"Haidian\""
"},"
"\"hobbies\": [\"Reading\", \"Traveling\"]"
"}";
json_error_t error;
json_t *root = json_loads(json_string, 0, &error);
if (!root) {
printf("json error on line %d: %s\n", error.line, error.text);
return 1;
}
json_t *name = json_object_get(root, "name");
json_t *age = json_object_get(root, "age");
json_t *address = json_object_get(root, "address");
json_t *hobbies = json_object_get(root, "hobbies");
printf("Name: %s\n", json_string_value(name));
printf("Age: %d\n", json_integer_value(age));
if (json_is_object(address)) {
json_t *province = json_object_get(address, "province");
json_t *city = json_object_get(address, "city");
printf("Province: %s\n", json_string_value(province));
printf("City: %s\n", json_string_value(city));
}
if (json_is_array(hobbies)) {
int i;
size_t size = json_array_size(hobbies);
for (i = 0; i< size; i++) {
json_t *hobby = json_array_get(hobbies, i);
printf("Hobby %d: %s\n", i+1, json_string_value(hobby));
}
}
json_decref(root);
}

以上代碼可以將一個JSON格式的字符串轉換成一個JSON對象(即列表),并從列表中取出相應的值,包括字符串、整數、對象和數組等等。

C語言中的JSON解析庫有很多,而這里使用的是一個名為“jansson”的開源庫。此庫提供了很多方便的函數來處理JSON格式的數據,比如json_loads和json_object_get等等。使用這些函數可以非常輕松地將一個JSON格式的字符串轉換成一個JSON對象,并從中獲取相應的屬性和值。