JSON是一種常見的數據交互格式,而在C語言中,我們也可以方便地通過JSON進行數據的序列化和反序列化。在本文中,我們將介紹如何將JSON數據序列化到文件中。
首先,我們需要引入相應的頭文件,以及JSON庫的頭文件:
#include <stdio.h> #include <stdlib.h> #include <string.h> #include <cJSON.h>
接著,我們可以定義一個需要序列化的JSON對象:
cJSON* root = cJSON_CreateObject(); cJSON_AddStringToObject(root, "name", "John"); cJSON_AddNumberToObject(root, "age", 30); cJSON_AddItemToObject(root, "address", cJSON_CreateStringArray((const char *[]){"New York", "USA"}, 2));
然后,我們可以使用cJSON庫提供的函數將這個JSON對象序列化為一個字符串:
char* json_str = cJSON_Print(root);
最后,我們可以將這個字符串寫入一個文件中:
FILE* file = fopen("data.json", "w"); if(file){ fputs(json_str, file); fclose(file); }
完整代碼如下:
#include <stdio.h> #include <stdlib.h> #include <string.h> #include <cJSON.h> int main(){ cJSON* root = cJSON_CreateObject(); cJSON_AddStringToObject(root, "name", "John"); cJSON_AddNumberToObject(root, "age", 30); cJSON_AddItemToObject(root, "address", cJSON_CreateStringArray((const char *[]){"New York", "USA"}, 2)); char* json_str = cJSON_Print(root); FILE* file = fopen("data.json", "w"); if(file){ fputs(json_str, file); fclose(file); } cJSON_Delete(root); return 0; }
執行完上述代碼,我們便可以在當前目錄下找到一個名為data.json的文件,其中包含了序列化后的JSON數據。