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

c 嵌套json 反序列化

阮建安1年前8瀏覽0評論

C語言是一種廣泛使用的編程語言,在許多應用程序中都可以看到它的身影。在進行編程時,可能需要使用JSON(JavaScript對象表示法)格式來存儲和傳輸數據。JSON是一種輕量級的數據交換格式,通常使用嵌套的鍵值對來表示復雜的數據結構。本文將介紹如何在C程序中使用嵌套JSON數據反序列化。

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <jansson.h>
int main(){
//JSON字符串
char* json_str = "{ \"name\": \"Mike\", \"age\": 25, \"address\": {\"city\": \"New York\", \"country\": \"USA\"} }";
//解析JSON
json_error_t error;
json_t* root = json_loads(json_str, 0, &error);
if(!root){
printf("Error: %s\n", error.text);
return 1;
}
//獲取鍵值對
const char* name;
int age;
json_t* address;
const char* city;
const char* country;
json_unpack(root, "{s:s, s:i, s:O}", "name", &name, "age", &age, "address", &address);
json_unpack(address, "{s:s, s:s}", "city", &city, "country", &country);
//輸出結果
printf("Name: %s\nAge: %d\nCity: %s\nCountry: %s\n", name, age, city, country);
return 0;
}

上述代碼中,我們首先定義了一個JSON字符串,在使用json_loads()函數將JSON字符串轉換為JSON對象時,需要指定0參數,表示字符串的長度將會自動計算。 如果出現錯誤,則使用json_error_t變量需要存儲錯誤信息。在使用json_unpack()函數獲取鍵值對時,需要指定鍵的名稱,以及對應的數據類型,例如字符串(s)和整數(i)。

最后輸出解析結果即可。總的來說,利用jansson庫中的json_loads()和json_unpack()函數可以輕松地在C程序中實現嵌套JSON反序列化。這對于需要處理復雜數據結構的應用程序非常有用。