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

c操作json文件

阮建安2年前8瀏覽0評論

JSON(JavaScript Object Notation)是一種輕量級的數據交換格式,它采用易于閱讀和編寫的文本格式,且支持多種編程語言中的數據結構。C語言作為一種常用的編程語言,自然也支持對JSON文件的操作。

在C語言中,常用的解析JSON文件庫有 cJSON 和 jsmn,這里以 cJSON 為例介紹如何對JSON文件進行讀寫操作。

/* 讀取JSON文件 */
#include <stdio.h>
#include <stdlib.h>
#include <cjson/cJSON.h>
int main() {
FILE *f = fopen("test.json", "r");
if (!f) {
perror("open file failed");
exit(1);
}
// 將文件內容讀入緩沖區
fseek(f, 0, SEEK_END);
long size = ftell(f);
fseek(f, 0, SEEK_SET);
char *buf = (char *)malloc(size + 1);
fread(buf, size, 1, f);
fclose(f);
// 解析JSON文件
cJSON *root = cJSON_Parse(buf);
if (!root) {
fprintf(stderr, "parse json file failed\n");
exit(1);
}
// 獲取JSON對象中的鍵值對
cJSON *name = cJSON_GetObjectItem(root, "name");
printf("name: %s\n", name->valuestring);
cJSON *age = cJSON_GetObjectItem(root, "age");
printf("age: %d\n", age->valueint);
// 釋放內存
cJSON_Delete(root);
free(buf);
return 0;
}
/* 寫入JSON文件 */
#include <stdio.h>
#include <cjson/cJSON.h>
int main() {
// 創建JSON對象
cJSON *root = cJSON_CreateObject();
cJSON_AddStringToObject(root, "name", "Tom");
cJSON_AddNumberToObject(root, "age", 18);
// 將JSON對象轉為字符串
char *buf = cJSON_Print(root);
// 將字符串寫入文件
FILE *f = fopen("test.json", "w");
if (!f) {
perror("open file failed");
exit(1);
}
fwrite(buf, sizeof(char), strlen(buf), f);
fclose(f);
// 釋放內存
cJSON_Delete(root);
free(buf);
return 0;
}

通過上述代碼,我們可以很方便地讀取和寫入JSON文件。需要注意的是,在使用 cJSON 時需要在編譯選項中添加 -lcjson 才能正確鏈接該庫。