在C語言中使用JSON格式,需要一個叫做json-c
的開源庫,它提供了解析和生成JSON數據的函數。可以通過下載源碼自行編譯,也可以通過包管理器安裝。
首先需要引入頭文件:
#include <json-c/json.h>
接下來可以使用json_object
結構體創建JSON對象。
// 創建空對象 struct json_object *obj = json_object_new_object(); // 添加屬性 json_object_object_add(obj, "name", json_object_new_string("Tom")); json_object_object_add(obj, "age", json_object_new_int(25)); json_object_object_add(obj, "is_student", json_object_new_boolean(true)); // 轉換為字符串 const char *json_str = json_object_to_json_string(obj); printf("%s\n", json_str); // 釋放內存 json_object_put(obj);
以上代碼創建了一個空的JSON對象,然后添加了三個屬性:名字、年齡和是否為學生。最后把對象轉換為JSON字符串并輸出。需要注意的是,json_object_to_json_string()
函數返回的字符串需要手動釋放。
如果要從JSON字符串中解析出對象,可以使用json_tokener
結構體的json_tokener_parse()
函數。
const char *json_str = "{\"name\":\"Tom\",\"age\":25,\"is_student\":true}"; struct json_object *obj = json_tokener_parse(json_str); // 獲取屬性值 struct json_object *name_obj = json_object_object_get(obj, "name"); const char *name_str = json_object_get_string(name_obj); int age = json_object_get_int(json_object_object_get(obj, "age")); bool is_student = json_object_get_boolean(json_object_object_get(obj, "is_student")); // 輸出結果 printf("name: %s\n", name_str); printf("age: %d\n", age); printf("is_student: %s\n", is_student ? "true" : "false"); // 釋放內存 json_object_put(obj);
以上代碼解析了一個JSON字符串,然后獲取了三個屬性的值并輸出。需要注意的是,json_tokener_parse()
函數返回的對象需要手動釋放。
上一篇vue iis gzip
下一篇html怎么設置三張圖片