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

c 讀取json文件中的數據類型

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

JSON作為一種支持多種數據結構的數據交換格式,在日常開發中被廣泛使用。在C語言中,讀取JSON文件中的數據類型也變得尤為重要。

#include <stdio.h>
#include <jansson.h>
int main() {
const char* json_string = "{\"name\":\"Lucas\",\"age\":25,\"is_male\":true,\"scores\":[80,90,85]}";
json_error_t error;
json_t* root = json_loads(json_string, 0, &error);  // 將JSON字符串轉換成JSON對象,并保存在json_t結構體指針中
json_t* name = json_object_get(root, "name");  // 獲取JSON對象中指定鍵名的鍵值
const char* name_str = json_string_value(name);  // 將JSON字符串類型的鍵值轉換成C語言的char*類型
printf("Name: %s\n", name_str);
json_t* age = json_object_get(root, "age");
int age_int = json_integer_value(age);  // 將JSON數字類型的鍵值轉換成C語言的int類型
printf("Age: %d\n", age_int);
json_t* is_male = json_object_get(root, "is_male");
int is_male_bool = json_boolean_value(is_male);  // 將JSON布爾類型的鍵值轉換成C語言的int類型,1代表true,0代表false
printf("Is male: %d\n", is_male_bool);
json_t* scores = json_object_get(root, "scores");
int scores_size = json_array_size(scores);  // 獲取JSON數組類型鍵值的長度
for (int i = 0; i < scores_size; i++) {
json_t* score = json_array_get(scores, i); // 獲取JSON數組類型鍵值的第i個元素
int score_int = json_integer_value(score);
printf("Score %d: %d\n", i + 1, score_int);
}
json_decref(root);  // 釋放JSON對象占用的內存
return 0;
}

除了上述代碼中涉及到的數據類型,JSON文件還支持更多的數據結構類型,比如字符串類型、null類型等,讀取方法也類似。不過需要注意的是,在使用json_t結構體指針訪問JSON中的數據時,需要使用相應的類型轉換函數(例如json_integer_value、json_string_value等)來將JSON的數據類型轉換成C語言中對應的數據類型。