JSON(JavaScript Object Notation)是一種輕量級的數據交換格式,已經成為了現代 web 應用中使用最廣泛的數據格式之一。在 C 語言中,可以使用json-c
庫來進行 JSON 格式的解析與生成。
使用json-c
庫,我們可以輕松地將一個 JSON 字符串解析為 C 數據結構或將一個 C 數據結構轉化為 JSON 字符串。
#include <json-c/json.h>
int main() {
// 將一個 JSON 字符串解析為 C 數據結構
const char *json_str = "{\"name\": \"tom\", \"age\": 18}";
struct json_object *json_obj = json_tokener_parse(json_str);
// 訪問 C 數據結構中的字段
struct json_object *name_obj, *age_obj;
json_object_object_get_ex(json_obj, "name", &name_obj);
json_object_object_get_ex(json_obj, "age", &age_obj);
const char *name = json_object_get_string(name_obj);
int age = json_object_get_int(age_obj);
// 輸出結果
printf("name: %s\n", name);
printf("age: %d\n", age);
// 釋放 C 數據結構所占用的空間
json_object_put(json_obj);
return 0;
}
上述代碼將一個 JSON 字符串解析為 C 數據結構,然后通過json_object_object_get_ex()
函數訪問其中的字段,并通過json_object_get_string()
和json_object_get_int()
函數獲取字段的值,最后輸出結果。
除了解析 JSON 字符串外,使用json-c
庫還可以方便地生成 JSON 字符串。
#include <json-c/json.h>
int main() {
// 創建一個 JSON 對象并賦值
struct json_object *json_obj = json_object_new_object();
json_object_object_add(json_obj, "name", json_object_new_string("tom"));
json_object_object_add(json_obj, "age", json_object_new_int(18));
// 生成 JSON 字符串
const char *json_str = json_object_to_json_string(json_obj);
// 輸出結果
printf("%s\n", json_str);
// 釋放 C 數據結構所占用的空間
json_object_put(json_obj);
return 0;
}
上述代碼創建了一個 JSON 對象并賦值,然后通過json_object_to_json_string()
函數將其轉化為 JSON 字符串并輸出結果。
使用json-c
庫,可以方便地解析與生成 JSON 格式的數據,為 C 語言編寫 web 應用提供了更廣闊的空間。
上一篇python 帶參數傳遞
下一篇vue 0.5速