在 C 語言中,使用 json-c 庫可以方便地讀取 JSON 字段。該庫提供了一組函數,用于解析 JSON 字符串并訪問其屬性。
要使用 json-c 庫,首先需要下載并安裝該庫。安裝完成后,在代碼文件中包含 json-c 頭文件。
#include <json-c/json.h>
接下來,可以通過以下代碼將 JSON 字符串解析為 json-c 的對象:
char *json_string = "{\"name\":\"Tom\", \"age\":25}"; json_object *json_obj = json_tokener_parse(json_string);
這樣就可以將 JSON 字符串中的屬性解析為 json-c 的對象,進而訪問其屬性。例如,對于以下 JSON 字符串:
{ "name": "Tom", "age": 25, "job": { "title": "programmer", "company": "ABC" }, "hobbies": ["music", "reading", "swimming"] }
可以使用以下代碼訪問該字符串中的屬性:
// 獲取name屬性 json_object *name_obj = json_object_object_get(json_obj, "name"); const char *name = json_object_get_string(name_obj); // 獲取age屬性 json_object *age_obj = json_object_object_get(json_obj, "age"); int age = json_object_get_int(age_obj); // 獲取job屬性中的title屬性 json_object *job_obj = json_object_object_get(json_obj, "job"); json_object *title_obj = json_object_object_get(job_obj, "title"); const char *title = json_object_get_string(title_obj); // 獲取hobbies屬性中的第一個元素 json_object *hobbies_obj = json_object_object_get(json_obj, "hobbies"); json_object *first_hobby_obj = json_object_array_get_idx(hobbies_obj, 0); const char *first_hobby = json_object_get_string(first_hobby_obj);
通過上述代碼,就可以方便地讀取 JSON 字段中的屬性,并將其轉換為相應的 C 變量。