JSON(JavaScript Object Notation)是一種常用的數據交換格式,它輕量、易于解析和生成、并且易于人類閱讀和編寫。而C語言則是一種廣泛應用于操作系統、嵌入式系統和網絡設備等領域的高級語言。本文將介紹如何使用C語言接收JSON對象。
在C語言中,我們可以使用第三方庫來實現JSON的解析和生成。目前比較流行的JSON庫有json-c、cJSON等。
下面以json-c庫為例,來介紹如何使用C語言接收JSON對象:
#include "json-c/json.h" int main() { char *json_string = "{\"name\":\"Tom\",\"age\":18}"; struct json_object *json_obj = json_tokener_parse(json_string); 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_str = json_object_get_string(name_obj); int age = json_object_get_int(age_obj); printf("Name: %s, age: %d\n", name_str, age); json_object_put(json_obj); return 0; }
代碼解釋:
1. 首先我們需要引入json-c庫的頭文件。
#include "json-c/json.h"
2. 接著我們定義一個JSON字符串,并使用json_tokener_parse()函數將其解析成JSON對象。
char *json_string = "{\"name\":\"Tom\",\"age\":18}"; struct json_object *json_obj = json_tokener_parse(json_string);
3. 使用json_object_object_get_ex()函數獲取JSON對象中的屬性值。
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);
4. 最后我們將獲取到的屬性值轉化成對應的數據類型。
const char *name_str = json_object_get_string(name_obj); int age = json_object_get_int(age_obj);
5. 最后別忘了釋放JSON對象的空間。
json_object_put(json_obj);
參考本文,你已經掌握了如何使用C語言接收JSON對象。但需要注意的是,解析JSON對象時必須保證JSON格式正確,否則會導致解析失敗。