對于正在使用 C 語言的開發者來說,JSON 格式的數據已經成為非常常見的數據格式之一。在使用 JSON 數據的時候,將 JSON 數據轉換為數組是非常常見的需求。在 C 編程語言中完成這個任務,除了手寫代碼解析 JSON 數據以外,也可以使用第三方庫來完成這個任務。
#include#include #include #include "cJSON.h" //引入 cjson 庫 #define MAX_JSON_LENGTH 1024 int main() { char json_string[MAX_JSON_LENGTH] = "{\"name\":\"Jack\",\"age\":18,\"hobbies\":[\"reading\",\"running\",\"swimming\"]}"; cJSON *json = cJSON_Parse(json_string); //解析 json 字符串 cJSON *hobbies = cJSON_GetObjectItem(json, "hobbies"); //獲取 hobbies 數組 int hobbies_size = cJSON_GetArraySize(hobbies); //獲取 hobbies 數組的長度 int i; printf("Hobbies:\n"); for (i = 0; i< hobbies_size; i++) { cJSON *hobby = cJSON_GetArrayItem(hobbies, i); //獲取 hobbies 數組中的單個元素 printf("%s\n", hobby->valuestring); } cJSON_Delete(json); //釋放內存 return 0; }
在上面的代碼中,我們首先使用 cjson 庫中的 cJSON_Parse 函數解析了一個 JSON 字符串,然后使用 cJSON_GetObjectItem 函數獲取了其中的 hobbies 數組。接下來,我們使用 cJSON_GetArraySize 函數獲取了數組的長度,并使用 cJSON_GetArrayItem 函數獲取了其中的單個元素。最后,我們在 for 循環中逐個遍歷數組中的元素來完成 JSON 轉換為數組的任務。最后,我們需要使用 cJSON_Delete 函數釋放內存。