在C程序中獲取嵌套JSON數據的鍵值對,可以通過解析JSON字符串來實現。JSON是一種輕量級的數據交換格式,它易于閱讀和編寫,而且可以被多種編程語言解析。 要獲取JSON數據中的嵌套鍵值對,我們可以使用C語言中的json-c庫。在使用該庫之前,我們需要先安裝它。在Linux系統中,可以通過以下命令安裝json-c庫:
sudo apt-get install libjson-c-dev接下來,我們可以在程序中使用以下代碼來解析JSON字符串:
#include在上面的代碼中,我們首先將JSON字符串轉換為json-c庫中的json_object結構體。然后,通過json_object_object_get_ex函數,我們可以從json_object結構體中獲取指定鍵的值。 在本例中,我們獲取了嵌套鍵outer_key的值,并將其賦給一個指向json_object的指針nested_obj。然后,我們使用json_object_object_get_ex函數再次獲取嵌套鍵inner_key的值,并將其賦給一個指向char的指針inner_value。最后,我們打印inner_value的值。 在使用json-c庫時,還可以使用其他函數來訪問JSON數據,如json_object_array_get_idx、json_object_get_boolean和json_object_get_int等。這些函數的詳細使用可以參考json-c庫的官方文檔。 通過使用json-c庫,我們可以輕松地解析JSON數據并獲取嵌套鍵值對。這在處理API響應、配置文件等方面非常有用。void parse_json(char *json_str) { struct json_object *json_obj, *nested_obj; json_obj = json_tokener_parse(json_str); json_object_object_get_ex(json_obj, "outer_key", &nested_obj); if(json_object_get_type(nested_obj) == json_type_object) { const char *inner_value; json_object_object_get_ex(nested_obj, "inner_key", &inner_value); printf("The value of inner_key is %s\n", inner_value); } }