JSON是一種輕量級的數據交換格式,而SQLite是一種輕量級的關系型數據庫管理系統。在開發過程中,我們通常需要將JSON數據存儲到SQLite數據庫中。這篇文章將向大家介紹如何使用C語言將JSON數據轉換為SQLite數據。
在開始編寫代碼前,首先需要安裝sqlite3和cJSON庫。安裝方法請自行查找相關教程。
#include#include #include int main() { sqlite3* db; char* errMsg = 0; int rc; rc = sqlite3_open("test.db", &db); // 打開數據庫 if(rc) { fprintf(stderr, "Can't open database: %s\n", sqlite3_errmsg(db)); sqlite3_close(db); return 0; } rc = sqlite3_exec(db, "create table if not exists test(id integer primary key, name text, age integer)", NULL, NULL, &errMsg); //創建表 if(rc != SQLITE_OK) { fprintf(stderr, "SQL error: %s\n", errMsg); sqlite3_free(errMsg); sqlite3_close(db); return 0; } cJSON* root; char* json = "{\"id\":1,\"name\":\"Alice\",\"age\":20}"; root = cJSON_Parse(json); // 解析JSON數據 if(!root) { printf("Error before: [%s]\n", cJSON_GetErrorPtr()); sqlite3_close(db); return 0; } cJSON* id = cJSON_GetObjectItemCaseSensitive(root, "id"); cJSON* name = cJSON_GetObjectItemCaseSensitive(root, "name"); cJSON* age = cJSON_GetObjectItemCaseSensitive(root, "age"); char sql[128]; sprintf(sql, "insert into test values(%d, \"%s\", %d)", id->valueint, name->valuestring, age->valueint); // 構建插入SQL語句 rc = sqlite3_exec(db, sql, NULL, NULL, &errMsg); if(rc != SQLITE_OK) { fprintf(stderr, "SQL error: %s\n", errMsg); sqlite3_free(errMsg); sqlite3_close(db); return 0; } sqlite3_close(db); // 關閉數據庫 return 0; }
代碼中,我們使用sqlite3庫和cJSON庫,打開數據庫并創建一個名為test的表。接著,我們解析JSON數據,獲取其中的id、name和age字段,并利用sprintf函數構建插入SQL語句。最后,執行插入操作并關閉數據庫。
使用上述代碼,我們可以將一個包含id、name和age字段的JSON數據存儲到SQLite數據庫中。