在c語言中,我們可以使用json-c這個庫來解析json數組。首先需要在程序中導入頭文件:
#include <json-c/json.h>
接下來,我們可以使用json_object *json_tokener_parse(char *str)函數來解析json字符串,該函數返回一個json_object結構體類型的指針,其中str為需要解析的json字符串。我們來看一個例子:
char *json_str = "{\"name\":\"張三\",\"age\":20}"; json_object *json_obj = json_tokener_parse(json_str);
上面的代碼中,我們定義了一個json字符串,然后調用json_tokener_parse函數將其解析為一個json_object類型的結構體指針。
接下來,我們可以使用json_object_object_get函數從json_object中取出對應的值。該函數的第一個參數為需要取值的json_object結構體指針,第二個參數為要取值的鍵的字符串。
json_object *name_obj = json_object_object_get(json_obj, "name"); json_object *age_obj = json_object_object_get(json_obj, "age");
上面的代碼中,我們先通過json_object_object_get函數分別取出"name"和"age"的值所對應的json_object結構體指針。
接下來,我們可以使用json_object_get_string函數將該結構體中的值按照字符串的形式讀出:
const char *name = json_object_get_string(name_obj); int age = json_object_get_int(age_obj);
上面的代碼中,我們使用json_object_get_string將"name"的值以字符串的形式獲取,而使用json_object_get_int將"age"的值以整數的形式獲取。
最后,我們需要記得使用json_object_put函數來釋放該結構體內存。
json_object_put(json_obj);
如此,我們就可以在c語言中解析json數組了。