JSON是一種輕量級的數(shù)據(jù)交換格式,它可以方便地進(jìn)行數(shù)據(jù)的傳輸和共享。在C中,我們經(jīng)常需要將JSON轉(zhuǎn)換成數(shù)組來進(jìn)行處理。下面就是一段實(shí)現(xiàn)將JSON轉(zhuǎn)化為字符串?dāng)?shù)組的代碼。
#include <json.h> #include <stdio.h> int main(void) { cJSON *root = cJSON_Parse("{\"name\":\"Tom\",\"age\":25,\"sex\":\"male\"}"); int size = cJSON_GetArraySize(root); char *arr[size]; for (int i = 0;i< size;i++) { cJSON *object = cJSON_GetArrayItem(root, i); char *str = cJSON_PrintUnformatted(object); *(arr + i) = str; } for (int i = 0;i< size;i++) { printf("%s\n", *(arr + i)); } return 0; }
在這段代碼中,我們首先使用了cJSON庫對一個(gè)JSON字符串進(jìn)行了解析,得到了一個(gè)cJSON對象root。接著我們使用了cJSON_GetArraySize函數(shù)獲取了root中數(shù)組對象的個(gè)數(shù),然后通過遍歷數(shù)組獲得了每一個(gè)數(shù)組元素的字符串表示。
最后,我們使用了一個(gè)字符串指針數(shù)組arr,將獲得的每一個(gè)字符串存儲在其中,最終通過一個(gè)循環(huán)輸出了所有的字符串元素。