C語言中有一個廣泛使用的庫——json-c,它提供了一大堆操作JSON格式數(shù)據(jù)的API。其中之一便是將JSON字符串轉(zhuǎn)換成數(shù)組。下面我們來學習一下如何使用json-c來實現(xiàn)這一功能。
// 引入json-c的頭文件 #include <json-c/json.h> // 假設以下是一個JSON字符串 char *str = "{ \"num\": 3, \"arr\": [1, 2, 3] }"; // 將JSON字符串解析為json_object類型 struct json_object *json = json_tokener_parse(str); // 獲取arr數(shù)組的長度 int arr_len = json_object_array_length(json_object_object_get(json, "arr")); // 遍歷arr數(shù)組并輸出 for(int i = 0; i < arr_len; i++) { struct json_object *arr_item = json_object_array_get_idx(json_object_object_get(json, "arr"), i); printf("%d ", json_object_get_int(arr_item)); } // 記得釋放掉json對象 json_object_put(json);
解釋一下代碼中的幾個重點:
- json_tokener_parse:將字符串解析為json_object對象
- json_object_object_get:獲取json對象中某個鍵對應的值
- json_object_array_length/json_object_array_get_idx:獲取json數(shù)組的長度,以及遍歷數(shù)組中的每個元素
- json_object_get_int:獲取json對象中的整型值
- json_object_put:釋放json_object對象
通過上面的例子,我們可以在C語言中很方便地完成JSON字符串到數(shù)組的轉(zhuǎn)換。需要注意的是,json-c庫支持的操作遠不止如此,有興趣的讀者可以自行了解更多API。