C 語言對于 JSON 字符串取值有很好的支持,可以通過一些庫來輕松地對 JSON 字符串進(jìn)行解析。接下來我們將會介紹一些常用的 C 語言庫。
JSON-C
json_object *jobj = json_tokener_parse(str); json_object *status_obj = json_object_object_get(jobj, "status"); int status = json_object_get_int(status_obj);
上述代碼中,我們使用了 JSON-C 庫來解析 JSON 字符串,并將其轉(zhuǎn)化為 json_object 對象。然后通過 json_object_object_get 來獲取對象中的 "status" 值,并將其轉(zhuǎn)化為 int 類型。
jansson
json_error_t error; json_t *root = json_loads(str, JSON_DECODE_ANY, &error); json_t *status_obj = json_object_get(root, "status"); int status = json_integer_value(status_obj);
jansson 庫同樣提供了簡單易用的 API。我們可以通過 json_loads 將 JSON 字符串轉(zhuǎn)化為 json_t 對象,然后通過 json_object_get 來獲取對象中的值。最后使用 json_integer_value 將其轉(zhuǎn)化為 int 類型。
cJSON
cJSON *root = cJSON_Parse(str); cJSON *status_obj = cJSON_GetObjectItem(root, "status"); int status = status_obj->valueint;
cJSON 是一個輕量級的 JSON 解析庫,其所提供的 API 也非常簡單易用。我們可以通過 cJSON_Parse 將 JSON 字符串轉(zhuǎn)化為 cJSON 對象,然后通過 cJSON_GetObjectItem 來獲取對象中的值。最后使用 ->valueint 將其轉(zhuǎn)化為 int 類型。
以上是一些我們常用的 C 語言 JSON 解析庫,不同的庫在 API 上略有不同,但是總的來說都是針對 JSON 字符串取值進(jìn)行簡單易用的封裝。我們可以根據(jù)自己的需求來選擇合適的庫來進(jìn)行使用。