c JSON是一種輕量級的數據交換格式,被廣泛應用于web應用和移動應用中。如果你需要讀取c JSON數據,可以使用c語言中的json-c庫來實現。
要讀取c JSON數據,首先需要將數據解析為JSON對象。JSON對象可以是JSON數組或JSON對象。如果你有一個JSON對象,可以使用json_object_object_get_ex函數通過鍵名獲取值。
#include <stdio.h>
#include <json-c/json.h>
int main() {
const char *json_string = "{\"name\":\"Tom\",\"age\":25}";
struct json_object *json_obj = json_tokener_parse(json_string);
struct json_object *name_obj;
json_object_object_get_ex(json_obj, "name", &name_obj);
printf("name = %s\n", json_object_get_string(name_obj));
json_object_put(json_obj);
return 0;
}
代碼中首先定義了JSON字符串,并使用json_tokener_parse將其解析為JSON對象。然后使用json_object_object_get_ex函數獲取JSON對象中鍵名為name的值,并打印出來。最后需要釋放JSON對象。
如果你有一個JSON數組,可以使用json_object_array_get_idx函數通過下標獲取數組中的元素。
#include <stdio.h>
#include <json-c/json.h>
int main() {
const char *json_string = "[\"Tom\", 25]";
struct json_object *json_arr = json_tokener_parse(json_string);
struct json_object *name_obj = json_object_array_get_idx(json_arr, 0);
struct json_object *age_obj = json_object_array_get_idx(json_arr, 1);
printf("name = %s\n", json_object_get_string(name_obj));
printf("age = %d\n", json_object_get_int(age_obj));
json_object_put(json_arr);
return 0;
}
代碼中首先定義了JSON字符串,并使用json_tokener_parse將其解析為JSON數組。然后使用json_object_array_get_idx函數通過下標獲取數組中的元素,分別為name和age。最后打印兩個元素的值并釋放JSON對象。
c JSON讀取數據的關鍵在于通過函數獲取JSON對象及其中的值。掌握函數的用法后,便可以輕松讀取c JSON數據。
下一篇mysql刷新表觸發器