欧美一区二区三区,国内熟女精品熟女A片视频小说,日本av网,小鲜肉男男GAY做受XXX网站

c json 數組轉字符串數組

錢諍諍2年前9瀏覽0評論

今天我想和大家一起分享一下C語言中JSON數組轉字符串數組的方法。在C語言開發中,我們經常會遇到JSON數據的處理,而有時我們需要將一個JSON數組中的元素轉化成字符串數組,下面是具體實現過程。

#include <stdio.h>
#include <string.h>
#include <jansson.h>
int main() {
char** str_arr = NULL;  //定義字符串數組指針
int size = 0; //字符串數組大小
//設置JSON數據
char* json_str =
"{
\"fruit\":[
{\"name\":\"apple\", \"color\":\"red\"},
{\"name\":\"banana\",\"color\":\"yellow\"},
{\"name\":\"orange\", \"color\":\"orange\"}
]
}";
json_t* root;
json_error_t error;
//解析JSON數組
root = json_loads(json_str, 0, &error);
int len = json_array_size(json_object_get(root, "fruit"));
if (len >0) {
// 分配字符串數組的空間
str_arr = (char**)malloc(sizeof(char*) * len);
for (int i = 0; i< len; i++) {
//解析每個元素獲取值轉成字符串
json_t* value = json_array_get(json_object_get(root, "fruit"), i);
char* str = json_dumps(value, JSON_COMPACT | JSON_ENSURE_ASCII | JSON_PRESERVE_ORDER);
// 分配空間保存字符串
str_arr[i] = (char*)malloc(sizeof(char) * strlen(str));
strcpy(str_arr[i], str);
free(str);
size++;
}
}
//輸出轉換后的字符串數組
for (int i = 0; i< size; i++) {
printf("%s\n", str_arr[i]);
free(str_arr[i]);  //釋放空間
}
free(str_arr);  //釋放空間
return 0;
}

在代碼中,我們首先定義并設置JSON數據,使用json_loads解析JSON數組并獲取其大小,動態分配字符串數組空間,再通過循環將JSON數組中的元素解析為字符串并保存在字符串數組中。最后輸出轉換后的字符串數組,并釋放內存空間。