JSON是一種常用于數(shù)據(jù)交換格式的輕量級語言。在C語言中,我們可以使用cJSON庫來進(jìn)行JSON數(shù)據(jù)的解析。有時(shí)候,我們需要將JSON中的一組字符串?dāng)?shù)組轉(zhuǎn)換成C語言中的字符串?dāng)?shù)組,這需要用到cJSON中的一些API。
//JSON格式示例 { "name": "Tom", "age": 18, "arr": ["apple", "banana", "orange"] } //C語言代碼示例 #include#include "cJSON.h" int main() { cJSON *root, *arr, *item; char *jsonStr = "{\"name\": \"Tom\", \"age\": 18, \"arr\": [\"apple\", \"banana\", \"orange\"]}"; root = cJSON_Parse(jsonStr); arr = cJSON_GetObjectItem(root, "arr"); int len = cJSON_GetArraySize(arr); char *strArr[len]; for(int i = 0; i< len; i++) { item = cJSON_GetArrayItem(arr, i); strArr[i] = cJSON_PrintUnformatted(item); } for(int i = 0; i< len; i++) { printf("%s ", strArr[i]); } cJSON_Delete(root); return 0; }
上述代碼中,首先我們定義了JSON格式的示例數(shù)據(jù),并使用cJSON_Parse函數(shù)將其解析為cJSON對象。接著,使用cJSON_GetObjectItem函數(shù)獲取到JSON中的數(shù)組元素。通過cJSON_GetArraySize函數(shù)獲取數(shù)組的長度,然后通過for循環(huán)逐個(gè)遍歷數(shù)組,使用cJSON_GetArrayItem函數(shù)獲取數(shù)組元素。最后,使用cJSON_PrintUnformatted函數(shù)將每個(gè)元素轉(zhuǎn)化成C語言字符串,并賦值給strArr數(shù)組中的每個(gè)元素。
最后,我們可以使用for循環(huán)將strArr數(shù)組里的所有字符串元素打印出來,從而實(shí)現(xiàn)了JSON字符串?dāng)?shù)組到C語言字符串?dāng)?shù)組的轉(zhuǎn)換。