在 C 語言中,我們可以通過第三方庫 json-c 來方便地修改 JSON 文件并將其保存到數據庫中。下面讓我們一起來看看具體的實現方法。
首先,我們需要在代碼中引入 json-c 庫:
#include <stdio.h> #include <stdlib.h> #include <json-c/json.h>
接下來,我們讀取 JSON 文件并將其解析成 json_object 對象:
struct json_object *obj; FILE *fp = fopen("test.json", "r"); if(!fp) { printf("文件打開失??!\n"); exit(1); } char buf[1024]; fread(buf, 1, 1024, fp); fclose(fp); obj = json_tokener_parse(buf);
接著,我們可以使用 json_object_object_add() 函數來添加、修改、刪除 JSON 的鍵值對:
json_object_object_add(obj, "name", json_object_new_string("Tom")); json_object_object_add(obj, "age", json_object_new_int(20)); json_object_object_del(obj, "gender");
有時我們需要將修改后的 JSON 寫入到一個新的文件中,可以使用 json_object_to_file() 函數:
json_object_to_file("new.json", obj);
最后,我們可以將修改后的 JSON 存儲到數據庫中。具體實現方式可以根據數據庫的類型來選擇對應的 API,例如 MySQL 中可以使用 C API 提供的函數來進行操作:
MYSQL_RES *result; MYSQL_ROW row; MYSQL *mysql = mysql_init(NULL); mysql_real_connect(mysql, "localhost", "root", "123456", "test", 0, NULL, 0); FILE *fp = fopen("new.json", "r"); if(!fp) { printf("文件打開失敗!\n"); exit(1); } char buf[1024]; fread(buf, 1, 1024, fp); fclose(fp); char query[1024]; sprintf(query, "INSERT INTO json_data (data) VALUES ('%s')", buf); mysql_query(mysql, query); mysql_close(mysql);
通過以上步驟,我們就可以在 C 語言中修改 JSON 文件并將其存儲到數據庫中了。
上一篇el傳遞json