C 語言是一種非常常用的編程語言。在編寫 C 語言程序的過程中,我們有時需要將程序生成的數據保存到 JSON 文件中。那么在 C 語言中,如何生成 JSON 文件呢?本文將為你介紹以下兩種方法:
方法一:使用第三方庫 cJSON
#include <stdio.h>
#include <cjson/cJSON.h>
int main()
{
cJSON *root = cJSON_CreateObject();
cJSON_AddNumberToObject(root,"age", 18);
cJSON_AddStringToObject(root, "name", "Tom");
char *out = cJSON_Print(root);
FILE *fp = fopen("test.json","w+");
fputs(out,fp);
free(out);
fclose(fp);
cJSON_Delete(root);
return 0;
}
方法二:手動構造 JSON 結構
#include <stdio.h>
int main()
{
FILE *fp = fopen("test2.json","w+");
fprintf(fp, "{");
fprintf(fp, "\"age\":%d,", 18);
fprintf(fp, "\"name\":\"%s\"", "Tom");
fprintf(fp, "}");
fclose(fp);
return 0;
}
以下是如何打開一個 JSON 文件:
#include <stdio.h>
#include <cjson/cJSON.h>
int main()
{
FILE *fp = fopen("test.json","r");
if(!fp)
{
printf("File not exist!\n");
return -1;
}
fseek(fp,0,SEEK_END);
int len=ftell(fp);
fseek(fp,0,SEEK_SET);
char *buf = (char *)malloc(len+1);
fread(buf,1,len,fp);
fclose(fp);
buf[len] = '\0';
cJSON *root = cJSON_Parse(buf);
printf("age=%d, name=%s\n",cJSON_GetObjectItem(root,"age")->valueint,
cJSON_GetObjectItem(root,"name")->valuestring);
cJSON_Delete(root);
free(buf);
return 0;
}
使用 cJSON 庫可以更加方便地操作 JSON 文件,并且其具有良好的交互性和可移植性,因此極受開發者的歡迎。