JSON數組是一種非常方便的數據結構,它以鍵值對的形式存儲數據,其中值可以是數字、字符串、布爾類型、對象和數組。在C語言中,提取JSON數組里的數據需要借助第三方庫,比如json-c。
使用json-c庫,我們需要先安裝該庫,在Linux系統下可以使用以下命令安裝:
sudo apt-get install libjson-c-dev
在代碼中引入該庫:
#include <json-c/json.h>
接下來,我們需要讀入JSON數組數據,可以通過文件讀取或者手動輸入。假設我們已經將JSON數組存儲在字符串變量"json_string"中。
char *json_string = "[1, 2, \"hello\", false, {\"name\":\"John\", \"age\":26}]";
通過以下代碼將該字符串解析成json-c的結構體:
struct json_object *json_obj = json_tokener_parse(json_string);
在json-c中,我們可以通過以下函數提取JSON數組里的數據:
json_object_array_get_idx
:通過下標獲取數組元素json_object_array_length
:獲取數組元素個數
假設我們要獲取上面JSON數組里的第2個和第3個元素,代碼如下:
struct json_object *element_1 = json_object_array_get_idx(json_obj, 1);
struct json_object *element_2 = json_object_array_get_idx(json_obj, 2);
printf("%d, %s", json_object_get_int(element_1), json_object_get_string(element_2));
以上代碼將輸出:"2, hello"。
值得注意的是,如果JSON數組里的元素為對象或者數組,我們可以通過以上的方法先獲取一個json-c的結構體,再利用json-c提供的函數進一步提取數據。
綜上所述,利用json-c庫可以輕松地在C語言中提取JSON數組里的數據,方便了對JSON數據的處理和分析。
上一篇c語言怎么運行json
下一篇vue 路由全局攔截