在現(xiàn)代應(yīng)用程序中,JSON(JavaScript Object Notation)是一種常見的數(shù)據(jù)交換格式。而在 C 語(yǔ)言開發(fā)中,JSON 數(shù)據(jù)處理和解析是必不可少的。
下面是 C 語(yǔ)言中如何處理 JSON 數(shù)據(jù)的簡(jiǎn)單示例:
#include <stdio.h> #include <json-c/json.h> int main() { const char *json_str = "{\"name\":\"Tom\",\"age\":20}"; struct json_object *json_obj = json_tokener_parse(json_str); enum json_type type = json_object_get_type(json_obj); switch (type) { case json_type_object: printf("JSON Type: Object\n"); json_object_object_foreach(json_obj, key, val) { printf("Key: %s\n", key); if (json_object_is_type(val, json_type_string)) { printf("Value: %s\n", json_object_get_string(val)); } else if (json_object_is_type(val, json_type_int)) { printf("Value: %d\n", json_object_get_int(val)); } } break; default: printf("Unknown JSON Type: %d\n", type); break; } json_object_put(json_obj); return 0; }
在上面的代碼中,我們使用 libjson-c 庫(kù)來(lái)解析 JSON 數(shù)據(jù)。首先定義一個(gè)待解析的 JSON 字符串,然后調(diào)用 json_tokener_parse() 函數(shù)將其轉(zhuǎn)換成一個(gè) JSON 對(duì)象。
接下來(lái),我們使用 json_object_get_type() 函數(shù)獲取 JSON 對(duì)象的類型。當(dāng) JSON 對(duì)象類型為 object 時(shí),我們可以使用 json_object_object_foreach() 函數(shù)遍歷其中的鍵值對(duì),獲取其鍵名和鍵值,并通過 json_object_is_type() 函數(shù)判斷其類型,從而使用對(duì)應(yīng)的 json_object_get_XXX() 函數(shù)獲取值。
最后,我們使用 json_object_put() 函數(shù)清理 JSON 對(duì)象,并返回程序運(yùn)行狀態(tài)。