在C語言中解析JSON字符串數組需要用到一些庫和函數,在本篇文章中我們將簡單介紹如何使用C語言解析JSON字符串數組。
首先,我們需要使用一個C庫,比如json-c,在代碼中引用頭文件:
#include <json-c/json.h>這個庫提供了一些方便的函數用于解析JSON字符串。
接下來我們需要準備一個JSON字符串數組,示例代碼如下:
[ {"name": "apple", "color": "red", "price": 3.0}, {"name": "banana", "color": "yellow", "price": 2.5}, {"name": "orange", "color": "orange", "price": 4.0} ]
現在我們來解析這個JSON字符串數組,代碼如下:
#include <stdio.h> #include <json-c/json.h> int main() { char *string = "[{\"name\": \"apple\", \"color\": \"red\", \"price\": 3.0}, {\"name\": \"banana\", \"color\": \"yellow\", \"price\": 2.5}, {\"name\": \"orange\", \"color\": \"orange\", \"price\": 4.0}]"; json_object *json_array = json_tokener_parse(string); int array_length = json_object_array_length(json_array); for (int i = 0; i < array_length; i++) { json_object *array_element = json_object_array_get_idx(json_array, i); json_object *name, *color, *price; json_object_object_get_ex(array_element, "name", &name); json_object_object_get_ex(array_element, "color", &color); json_object_object_get_ex(array_element, "price", &price); printf("%s: %s ($%.2f)\n", json_object_get_string(name), json_object_get_string(color), json_object_get_double(price)); } json_object_put(json_array); return 0; }
運行代碼會輸出每個水果的名稱、顏色和價格,代碼說明如下:
- 第5行,我們使用
json_tokener_parse()
函數解析JSON字符串為一個json_object
。 - 第6行,獲取JSON數組的長度。
- 第8至16行,遍歷JSON數組,使用
json_object_array_get_idx()
獲取數組中指定索引的元素,并使用json_object_object_get_ex()
獲取元素的名稱、顏色和價格。 - 最后,在內存中釋放
json_array
。
以上就是在C語言中解析JSON字符串數組的方法和示例代碼。