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

c 讀取json實例

錢瀠龍2年前10瀏覽0評論

在C語言中,讀取JSON數(shù)據(jù)是一個非常常見的操作。下面我們來看一個C語言讀取JSON數(shù)據(jù)的實例。

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <jansson.h>
int main()
{
char* json_str = "{ \"name\": \"Tom\", \"age\": 26, \"is_student\": true }";
json_error_t error;
json_t* root = json_loads(json_str, 0, &error);
if(!root) {
printf("JSON讀取失敗:%s\n", error.text);
return -1;
}
json_t* name = json_object_get(root, "name");
json_t* age = json_object_get(root, "age");
json_t* is_student = json_object_get(root, "is_student");
if(json_is_string(name))
printf("姓名:%s\n", json_string_value(name));
if(json_is_integer(age))
printf("年齡:%d\n", json_integer_value(age));
if(json_is_boolean(is_student)) {
if(json_true() == is_student)
printf("是否為學生:是\n");
else
printf("是否為學生:否\n");
}
json_decref(name);
json_decref(age);
json_decref(is_student);
json_decref(root);
return 0;
}

這里我們使用了一個很常見的JSON庫——jansson庫來讀取JSON數(shù)據(jù)。我們首先創(chuàng)建了一個JSON字符串,然后調(diào)用了json_loads函數(shù)來將JSON字符串轉(zhuǎn)換成一個json_t類型的對象root。

為了防止JSON讀取失敗,我們還需要對返回值進行判斷。如果root對象為空,說明JSON讀取失敗,我們可以通過error.text來獲取錯誤信息。

然后我們分別通過json_object_get函數(shù)來獲取root對象中的name、age和is_student字段,并分別判斷其類型,最后使用相應的函數(shù)來獲取其值。

最后我們還需要手動釋放每一個json_t類型的對象,防止內(nèi)存泄漏。