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数据库中。