C 語言從 2011 年 C11 開始支持 JSON 解析庫。通過該庫,我們可以將 JSON 數據解析成 C 語言數據結構,方便后續的數據處理。下面我們簡單介紹一下如何使用該庫。
首先,我們需要在代碼中引入相應的頭文件:
#include <stdio.h> #include <jansson.h>
其中jansson.h
即為 JSON 庫的頭文件。
接下來,我們需要將字符串類型的 JSON 數據轉換成 json_t 類型的數據結構。我們可以使用 jansson 庫提供的json_loads
函數實現:
const char *json_str = "{\"name\":\"John\",\"age\":30,\"city\":\"New York\"}"; json_t *json = json_loads(json_str, 0, NULL);
其中第二個參數為 JSON 數據字符串的長度,我們可以設置為 0,讓函數自動計算字符串長度。第三個參數為錯誤信息結構體指針,我們可以設置為 NULL,表示不需要返回錯誤信息。
接下來,我們可以通過 jansson 提供的一系列函數獲取 JSON 數據中的值。例如:
json_t *name_json = json_object_get(json, "name"); const char* name = json_string_value(name_json); printf("name: %s\n", name);
上述代碼中,我們使用json_object_get
函數獲取名為 “name” 的 value,然后使用json_string_value
函數將其轉為字符串類型,最后打印出來。
需要注意的是,在使用完 jansson 庫后,我們需要釋放 json_t 數據結構:
json_decref(json);
這樣就完成了基本的 JSON 解析操作。