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

c 取json子json

C語(yǔ)言是一種廣泛使用的編程語(yǔ)言,憑借其高效性和底層控制能力,成為了眾多程序員的首選。而在開(kāi)發(fā)中,使用JSON格式來(lái)存儲(chǔ)和傳遞數(shù)據(jù)也變得十分常見(jiàn)。本文將介紹如何在C語(yǔ)言中取出JSON中的子JSON。

#include <stdio.h>
#include <string.h>
#include <jansson.h>
int main()
{
char *json_string = "{\"name\": \"Tom\", \"age\": 20, \"address\": {\"city\": \"Beijing\", \"code\": \"100012\"}}";
json_t *root, *address;
const char *city;
root = json_loads(json_string, 0, NULL);
if(!root)
{
fprintf(stderr, "Error: Load JSON string failed.\n");
return 1;
}
address = json_object_get(root, "address");
if(!address)
{
fprintf(stderr, "Error: Get address object failed.\n");
return 1;
}
city = json_string_value(json_object_get(address, "city"));
if(!city)
{
fprintf(stderr, "Error: Get city string failed.\n");
return 1;
}
printf("City: %s\n", city);
json_decref(root);
return 0;
}

上面是一個(gè)簡(jiǎn)單的例子,首先我們定義了一個(gè)JSON字符串,包含了一個(gè)name、age和address對(duì)象。我們需要從中獲得address對(duì)象中的city值。

接下來(lái),我們使用jansson庫(kù)中的json_loads函數(shù),將JSON字符串轉(zhuǎn)換為一個(gè)json_t類型的對(duì)象root。若轉(zhuǎn)換失敗,則輸出錯(cuò)誤信息并返回1。

然后,我們使用json_object_get函數(shù)獲取root對(duì)象中的address對(duì)象。如果獲取失敗則輸出錯(cuò)誤信息并返回1。

最后,我們使用json_object_get函數(shù)獲取address對(duì)象中的city字符串,如果獲取失敗則輸出錯(cuò)誤信息并返回1。否則,輸出city值。

最后不要忘記使用json_decref函數(shù)釋放JSON對(duì)象。