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

c 如何循環獲取json值

錢艷冰2年前7瀏覽0評論

C語言是一門廣泛使用的編程語言,可以用于開發各種應用程序。在處理數據時,常常需要解析JSON數據。本文介紹如何使用C語言循環獲取JSON值。

#include<stdio.h>
#include<stdlib.h>
#include<string.h>
#include<jansson.h>
int main()
{
const char *json_string = "{\"name\":\"Jack\",\"age\":18,\"hobby\":[\"swimming\",\"reading\"]}";
json_error_t error;
json_t *root = json_loads(json_string, 0, &error);     //將json字符串轉換成json_t類型
if (!root)
{
fprintf(stderr, "error: on line %d: %s\n", error.line, error.text);
return -1;
}
json_t *name, *age, *hobby;
const char *name_str;
int age_int;
size_t i;
name = json_object_get(root, "name");       //獲取name值
name_str = json_string_value(name);
age = json_object_get(root, "age");         //獲取age值
age_int = json_integer_value(age);
printf("name:%s, age:%d\n", name_str, age_int);
hobby = json_object_get(root, "hobby");     //獲取hobby值
for (i = 0; i< json_array_size(hobby); i++)    //循環獲取hobby值
{
json_t* array_element = json_array_get(hobby, i);
const char* hobby_str = json_string_value(array_element);
printf("hobby[%d]:%s\n", i, hobby_str);
}
json_decref(root);
return 0;
}

上述代碼中,首先定義了一個JSON字符串,然后通過調用json_loads函數將其轉換成json_t類型的根節點root,如果出現解析錯誤,則打印錯誤信息并退出程序。

接著,通過調用json_object_get函數獲取JSON鍵值對中的name和age的值,并使用相應的類型轉換函數將其轉換為C語言的數據類型。最后,通過json_object_get函數獲取hobby值,并使用循環和json_array_get函數遍歷該數組中的元素。

綜上,使用C語言循環獲取JSON值是一項基礎的技能,可以在開發中發揮重要作用。