在做web開發的過程中,json(JavaScript Object Notation)是不可避免的一個數據格式。C語言作為一種強大的編程語言,可以通過一些庫和函數,將數據寫入json格式的文件中。
常用的C語言庫有json-c 和 cJSON。使用這兩個庫,可以快速的將C語言中的數據類型(比如數組、結構體等等)轉化為json格式并寫入文件。
// json-c 示例代碼 #include#include int main() { // 創建json對象 json_object *jobj = json_object_new_object(); // 添加鍵值對 json_object_object_add(jobj, "name", json_object_new_string("Amy")); json_object_object_add(jobj, "age", json_object_new_int(24)); // 將json對象轉化為字符串 const char *json_string = json_object_to_json_string(jobj); printf("json_string: %s\n", json_string); // 將json字符串寫入文件 FILE *fp = fopen("data.json", "w"); if (fp == NULL) { perror("unable to open file"); return -1; } fprintf(fp, "%s", json_string); fclose(fp); // 釋放內存 json_object_put(jobj); return 0; }
// cJSON 示例代碼 #include#include #include "cJSON.h" int main() { // 創建json對象 cJSON *root = cJSON_CreateObject(); // 添加鍵值對 cJSON_AddStringToObject(root, "name", "Amy"); cJSON_AddNumberToObject(root, "age", 24); // 將json對象轉化為字符串 const char *json_string = cJSON_Print(root); printf("json_string: %s\n", json_string); // 將json字符串寫入文件 FILE *fp = fopen("data.json", "w"); if (fp == NULL) { perror("unable to open file"); return -1; } fprintf(fp, "%s", json_string); fclose(fp); // 釋放內存 cJSON_Delete(root); free((void *)json_string); return 0; }
除了寫入文件,這兩個庫還支持很多其他的操作,比如讀取json文件、修改json對象、序列化/反序列化等等。熟練掌握這些庫的使用,可以讓我們更加便捷地操作json數據。
上一篇c語言中解析json報文
下一篇vue get 中文亂碼