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

c 怎么存取json文件

張吉惟1年前7瀏覽0評論

C語言可以通過第三方庫來實現(xiàn)對JSON文件的讀取和處理,常見的JSON庫有cJSON、Jansson、json-c等。

以下是使用cJSON庫讀取JSON文件的例子:

#include <stdio.h>
#include <cJSON.h>
int main() {
FILE *fp;
char buffer[1024];
cJSON *json;
fp = fopen("data.json", "r");
fread(buffer, 1024, 1, fp);
fclose(fp);
json = cJSON_Parse(buffer);
if (!json) {
printf("Error before: [%s]\n", cJSON_GetErrorPtr());
return 1;
}
cJSON *name = cJSON_GetObjectItemCaseSensitive(json, "name");
cJSON *age = cJSON_GetObjectItemCaseSensitive(json, "age");
cJSON *address = cJSON_GetObjectItemCaseSensitive(json, "address");
printf("Name: %s\n", cJSON_Print(name));
printf("Age: %s\n", cJSON_Print(age));
printf("Address: %s\n", cJSON_Print(address));
cJSON_Delete(json);
return 0;
}

首先需要打開要讀取的JSON文件,將其讀取到緩沖區(qū)中,然后使用cJSON_Parse函數(shù)將緩沖區(qū)中的JSON字符串解析成一個cJSON對象。接著可以調(diào)用cJSON_GetObjectItemCaseSensitive函數(shù)獲取其中的某個字段,最后使用cJSON_Print函數(shù)將該字段打印出來即可。

同樣地,如果需要將數(shù)據(jù)寫入JSON文件,可以使用cJSON庫中的API來創(chuàng)建一個cJSON對象,設(shè)置其中的屬性和值,然后使用cJSON_PrintBuffered或cJSON_PrintUnformatted函數(shù)將其轉(zhuǎn)換成JSON字符串,寫入到文件中即可。

#include <stdio.h>
#include <cJSON.h>
int main() {
cJSON *json = cJSON_CreateObject();
cJSON_AddStringToObject(json, "name", "Tom");
cJSON_AddNumberToObject(json, "age", 22);
cJSON_AddStringToObject(json, "address", "Beijing");
char *json_str = cJSON_PrintUnformatted(json);
FILE *fp = fopen("data.json", "w");
fputs(json_str, fp);
fclose(fp);
cJSON_Delete(json);
return 0;
}

以上是使用cJSON庫來讀取和寫入JSON文件的基本方法,除此之外還有許多其他用法,需要根據(jù)具體的場景做出調(diào)整。同時在使用庫的過程中,也需要注意內(nèi)存的管理和安全問題,避免因為使用不當(dāng)造成漏洞和程序崩潰。