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

c json文件轉字符串數組

錢瀠龍1年前8瀏覽0評論

在C語言的開發中,有時會涉及到將JSON文件中的內容轉換成字符串數組的需求。這里我們可以使用開源庫 cJSON 來方便地實現這個功能。

cJSON *root = NULL;
char *data = NULL;
FILE *fp;
int file_size;
//打開JSON文件
fp = fopen("test.json", "rb");
if(fp != NULL)
{
fseek(fp, 0, SEEK_END);
file_size = ftell(fp);
fseek(fp, 0, SEEK_SET);
data = (char*)malloc(file_size + 1);
memset(data, 0, file_size + 1);
fread(data, 1, file_size, fp);
fclose(fp);
}
//解析JSON數據
root = cJSON_Parse(data);
//將JSON數據轉化為字符串數組
int array_size = cJSON_GetArraySize(root);
char **str_array = (char**)malloc(array_size * sizeof(char*));
for(int i = 0; i< array_size; i++)
{
cJSON *item = cJSON_GetArrayItem(root, i);
str_array[i] = cJSON_PrintUnformatted(item);
}
//釋放內存
cJSON_Delete(root);
free(data);
for(int i = 0; i< array_size; i++)
{
free(str_array[i]);
}
free(str_array);

代碼中首先用 fopen 函數打開 JSON 文件,并通過 fseek 和 ftell 確定文件大小,再使用 malloc 分配數據存儲空間,最后通過 fread 函數讀入文件內容。接著,通過 cJSON_Parse 函數將 JSON 數據解析出來,并通過 cJSON_GetArraySize 函數獲取數組大小,再通過 cJSON_GetArrayItem 函數將數組項取出來,并轉化為字符串形式,保存在動態二維數組 str_array 中。最后需要釋放內存,包括 cJSON_Parse 函數返回的指針、文件內容的指針、動態二維數組的每一個元素指針和指向動態二維數組的指針。