在 C 語言中,建立 JSON 格式的數據可以通過使用 JSON-C 庫來實現。JSON-C 是一種開源的 JSON 庫,它提供了一組 C 函數和宏,可幫助快速創建和解析 JSON 數據。
在開始編寫代碼之前,需要首先安裝 JSON-C 庫。可以使用 Linux 包管理器直接安裝 JSON-C 庫,如果在 Windows 系統中編寫 C 代碼,則需要下載 JSON-C 庫并手動添加到項目中。
// 在 Linux 系統中安裝 JSON-C 庫 sudo apt-get install libjson-c-dev
為了創建 JSON 數據,需要在代碼中創建一個 JSON 對象。可以將 JSON 對象看作一個帶有鍵值對的容器。以下是創建 JSON 對象的示例:
#includeint main() { struct json_object *json_obj = json_object_new_object(); json_object_object_add(json_obj, "name", json_object_new_string("John")); json_object_object_add(json_obj, "age", json_object_new_int(25)); json_object_object_add(json_obj, "is_student", json_object_new_boolean(1)); printf("%s\n", json_object_to_json_string(json_obj)); return 0; }
以上代碼創建了一個名為 json_obj 的 JSON 對象,并向其中添加了三個鍵值對。其中鍵值對的鍵是一個 String 類型的值,而值可以是任何可序列化為 JSON 的類型,如 String、Int 和 Boolean。
要將 JSON 對象轉換為 JSON 字符串,可以使用函數 json_object_to_json_string()。這將返回 JSON 格式的字符串,可以將其存儲在文件中或通過網絡傳輸。
在解析 JSON 數據時,可以通過調用適當的 json_object_get_xxx() 函數從 JSON 對象中提取數據。以下是解析 JSON 數據的示例:
#includeint main() { const char *json_str = "{\"name\": \"John\", \"age\": 25, \"is_student\": true}"; struct json_object *json_obj = json_tokener_parse(json_str); const char *name = json_object_get_string(json_object_object_get(json_obj, "name")); int age = json_object_get_int(json_object_object_get(json_obj, "age")); _Bool is_student = json_object_get_boolean(json_object_object_get(json_obj, "is_student")); printf("name: %s, age: %d, is_student: %d\n", name, age, is_student); return 0; }
以上代碼解析了一個符合 JSON 格式的字符串 json_str,并從中提取了三個數據。可以通過 json_object_object_get() 函數獲取 JSON 對象中的鍵值對,也可以使用適當的 json_object_get_xxx() 函數獲取值。
上一篇gson 封裝json
下一篇html定點頁面的代碼