在C語言中,處理JSON格式的數據類型是很常見的。JSON(JavaScript Object Notation)是一種輕量級的數據交換格式,易于閱讀和編寫。在JSON中,數據是由鍵值對組成的,其中鍵是由雙引號包圍的字符串,值可以是字符串、數字、布爾值、數組或對象。
#include <stdio.h>
#include <stdlib.h>
#include <json-c/json.h>
int main() {
// 創建JSON對象
struct json_object *root = json_object_new_object();
// 向對象中添加鍵值對數據
json_object_object_add(root, "name", json_object_new_string("John"));
json_object_object_add(root, "age", json_object_new_int(25));
json_object_object_add(root, "is_student", json_object_new_boolean(1));
// 創建JSON數組
struct json_object *arr = json_object_new_array();
json_object_array_add(arr, json_object_new_int(1));
json_object_array_add(arr, json_object_new_int(2));
json_object_array_add(arr, json_object_new_int(3));
json_object_object_add(root, "numbers", arr);
// 輸出JSON格式的數據
printf("%s", json_object_to_json_string(root));
// 釋放JSON對象
json_object_put(root);
return 0;
}
上面的代碼演示了如何創建一個JSON對象以及如何向對象中添加鍵值對和數組。最后使用json_object_to_json_string()
函數將JSON對象轉換為JSON格式的字符串并打印出來。整個過程需要使用json-c
庫。
對于讀取JSON格式的數據,也可以使用json-c
庫。例如,下面的代碼演示了如何從JSON格式的字符串中解析出一個鍵值對:
const char *str = "{\"name\":\"John\",\"age\":25,\"is_student\":true}";
struct json_object *root = json_tokener_parse(str);
struct json_object *name, *age, *is_student;
json_object_object_get_ex(root, "name", &name);
json_object_object_get_ex(root, "age", &age);
json_object_object_get_ex(root, "is_student", &is_student);
printf("name:%s age:%d is_student:%d", json_object_get_string(name),
json_object_get_int(age), json_object_get_boolean(is_student));
json_object_put(root);
上面的代碼從一個JSON格式的字符串中解析了一個鍵值對,并分別從中獲取了鍵為"name"
、"age"
和"is_student"
的值,并輸出到屏幕上。
上一篇es6遍歷json 數組
下一篇python 最大公約