色婷婷狠狠18禁久久YY,CHINESE性内射高清国产,国产女人18毛片水真多1,国产AV在线观看

c 怎樣修改json文件內容

林國瑞1年前8瀏覽0評論

JSON(JavaScript Object Notation)是一種常用的數據交換格式,常用于前后端數據傳輸。在C語言中,通過使用第三方庫如cJSON,可以方便地創(chuàng)建、解析和修改JSON格式的數據。本文將介紹如何在C語言中修改JSON文件內容。

首先,我們需要使用cJSON庫將JSON文件讀取到內存中,然后對其進行修改。以下是示例代碼:

#include <stdio.h>
#include <cJSON.h>
int main() {
// 讀取JSON文件到內存中
FILE* fp = fopen("example.json", "r");
fseek(fp, 0, SEEK_END);
long file_size = ftell(fp);
char* buffer = malloc(file_size + 1);
fseek(fp, 0, SEEK_SET);
fread(buffer, file_size, 1, fp);
fclose(fp);
// 解析JSON字符串為cJSON對象
cJSON* root = cJSON_Parse(buffer);
// 修改JSON內容
cJSON* name = cJSON_GetObjectItem(root, "name");
cJSON_SetValuestring(name, "new_name");
// 釋放內存
free(buffer);
cJSON_Delete(root);
return 0;
}

以上代碼通過使用cJSON_GetObjectItem和cJSON_SetValuestring函數,實現(xiàn)了將JSON對象中"name"鍵對應的值修改為"new_name"。需要注意的是,在執(zhí)行cJSON_Parse函數后返回的cJSON對象使用完畢后,需要通過cJSON_Delete函數來釋放內存。

最后,我們需要將修改后的JSON對象重新寫回到文件中。以下是示例代碼:

// 將cJSON對象中的內容寫回到文件中
FILE* fp = fopen("example.json", "w");
char* str = cJSON_Print(root);
fputs(str, fp);
fclose(fp);
free(str);

以上代碼通過使用cJSON_Print函數將cJSON對象轉換成JSON字符串,然后將其寫入到文件中。需要注意的是,在執(zhí)行fputs函數時,JSON字符串中可能會存在轉義字符,需要使用"\n"等換行符將其格式化輸出。