在現代的Web開發中,常常需要將數據存儲在數據庫中,同時也需要將數據以JSON格式進行傳輸。而使用C語言編寫程序來對JSON格式進行操作,則成為了一種常用的方式。以下是使用C語言(libjson庫)將JSON數據插入數據庫的示例:
#include#include #include #include "libjson.h" #include "sqlite3.h" int main() { /* JSON數據 */ char* json_str = "{ \"name\": \"張三\", \"age\": 20, \"address\": \"北京市海淀區\" }"; /* 使用libjson庫解析JSON數據 */ json_object* json_obj = json_parse_string(json_str); if(json_obj == NULL) { printf("JSON數據解析失敗!\n"); return -1; } /* 使用sqlite3庫連接數據庫 */ sqlite3* db = NULL; if(sqlite3_open("test.db", &db) != SQLITE_OK) { printf("數據庫連接失敗!\n"); return -1; } /* 插入數據 */ char* sql = "INSERT INTO user(name, age, address) VALUES(?, ?, ?)"; sqlite3_stmt* stmt = NULL; if(sqlite3_prepare_v2(db, sql, strlen(sql), &stmt, NULL) != SQLITE_OK) { printf("SQL語句解析失敗!\n"); return -1; } sqlite3_bind_text(stmt, 1, json_object_get_string(json_object_object_get(json_obj, "name")), strlen(json_object_get_string(json_object_object_get(json_obj, "name"))), NULL); sqlite3_bind_int(stmt, 2, json_object_get_int(json_object_object_get(json_obj, "age"))); sqlite3_bind_text(stmt, 3, json_object_get_string(json_object_object_get(json_obj, "address")), strlen(json_object_get_string(json_object_object_get(json_obj, "address"))), NULL); if(sqlite3_step(stmt) != SQLITE_DONE) { printf("插入數據失敗!\n"); return -1; } /* 釋放資源 */ sqlite3_finalize(stmt); sqlite3_close(db); json_object_put(json_obj); return 0; }
以上代碼示例演示了如何使用C語言解析JSON數據,并將數據插入SQLite數據庫中。其中使用了兩個庫:libjson和sqlite3。在使用libjson庫時,使用json_parse_string函數將JSON字符串解析為JSON對象,之后使用json_object_get_string和json_object_get_int函數獲取對象中的數據。在使用sqlite3庫時,通過sqlite3_open打開數據庫連接,通過sqlite3_prepare_v2解析SQL語句并綁定數據,之后通過sqlite3_step執行插入操作。
上一篇python 析構順序
下一篇vue動畫經典案例