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

c 保存json文件到本地

劉柏宏1年前11瀏覽0評論

在C語言中,我們可以使用開源庫 cJSON 來處理 JSON 數據。cJSON 是一個輕量級的 C 庫,可以幫助我們解析、構建并打印 JSON 數據。

在本地保存 JSON 數據,一般可以使用文件流操作。具體步驟如下:

  1. 使用 cJSON 庫構建 JSON 數據
  2. cJSON *root = cJSON_CreateObject();
    cJSON_AddStringToObject(root, "name", "張三");
    cJSON_AddNumberToObject(root, "age", 20);
  3. 將 JSON 數據轉換成字符串
  4. char *json_str = cJSON_Print(root);
  5. 創建文件指針,并打開文件
  6. FILE *fp = fopen("data.json", "w");
    if (fp == NULL) {
    printf("Error: cannot open file.\n");
    return 1;
    }
  7. 將 JSON 字符串寫入文件
  8. fwrite(json_str, strlen(json_str), 1, fp);
  9. 關閉文件指針和 cJSON 對象
  10. fclose(fp);
    cJSON_Delete(root);

完整代碼示例:

#include <stdio.h>
#include <string.h>
#include <cJSON.h>
int main() {
cJSON *root = cJSON_CreateObject();
cJSON_AddStringToObject(root, "name", "張三");
cJSON_AddNumberToObject(root, "age", 20);
char *json_str = cJSON_Print(root);
FILE *fp = fopen("data.json", "w");
if (fp == NULL) {
printf("Error: cannot open file.\n");
return 1;
}
fwrite(json_str, strlen(json_str), 1, fp);
fclose(fp);
cJSON_Delete(root);
return 0;
}

上述代碼將創建 JSON 對象并寫入文件,文件名為 data.json。我們可以通過以下方式讀取該文件:

FILE *fp = fopen("data.json", "r");
fseek(fp, 0, SEEK_END);
long size = ftell(fp);
char *json_str = (char*)malloc(size + 1);
rewind(fp);
fread(json_str, size, 1, fp);
fclose(fp);
json_str[size] = '\0';
cJSON *root = cJSON_Parse(json_str);
cJSON *name = cJSON_GetObjectItem(root, "name");
cJSON *age = cJSON_GetObjectItem(root, "age");
printf("name: %s\nage: %d\n", name->valuestring, age->valueint);
cJSON_Delete(root);
free(json_str);

注意在讀取完文件后需要釋放內存。