JSON(JavaScript Object Notation)是一種數據交換格式,它已經在現代互聯網應用中得到了廣泛的應用。在C語言中,我們可以使用JSON-C庫對JSON數據進行解析和操作。
首先需要在代碼中添加JSON-C庫的頭文件和鏈接庫:
#include <stdio.h> #include <json-c/json.h> int main(){ json_object *jobj; // 定義json對象 jobj = json_object_new_object(); // 新建一個json對象 json_object_object_add(jobj, "name", json_object_new_string("json-c")); // 添加屬性 printf("%s\n", json_object_to_json_string(jobj)); // 輸出json字符串 return 0; }
在上面的代碼中,我們首先定義了一個json對象,然后通過json_object_new_object函數新建了一個空的json對象。接著,使用json_object_object_add函數向json對象中添加了一個name屬性,它的值是一個字符串"json-c"。
最后,使用json_object_to_json_string函數將json對象轉換為json字符串,并將其打印到控制臺中。
解析JSON數據也很簡單。下面是一個例子:
const char *json_str = "{\"name\":\"json-c\"}"; // JSON字符串 json_object *jobj = json_tokener_parse(json_str); // 解析JSON字符串 json_object *nameObj; // JSON對象 json_object_object_get_ex(jobj, "name", &nameObj); // 獲取name屬性 printf("name: %s\n", json_object_get_string(nameObj)); // 輸出name屬性的值
在上面的代碼中,我們首先定義了一個JSON字符串,并使用json_tokener_parse函數解析了這個字符串,得到了一個json對象。接著,使用json_object_object_get_ex函數從json對象中獲取了name屬性,并通過json_object_get_string函數獲取了name屬性的值,并將它打印到控制臺中。
如此,我們就成功地實現了C語言中對JSON數據的模擬解析。