色婷婷狠狠18禁久久YY,CHINESE性内射高清国产,国产女人18毛片水真多1,国产AV在线观看

c 寫json插入數據庫

阮建安1年前8瀏覽0評論

在現代的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執行插入操作。