温馨提示×

c++怎么存取JSON数据到数据库

小亿
137
2024-01-26 17:41:19
栏目: 编程语言

要将JSON数据存储到数据库,你可以使用C++中的数据库连接库来实现,如MySQL Connector/C++或SQLite C/C++ Interface。

下面是一种将JSON数据存储到MySQL数据库的示例代码:

```cpp

#include

#include

#include

#include

#include

#include

#include

#include

using namespace std;

int main() {

try {

sql::mysql::MySQL_Driver *driver;

sql::Connection *con;

// 创建MySQL连接

driver = sql::mysql::get_mysql_driver_instance();

con = driver->connect("tcp://127.0.0.1:3306", "username", "password");

// 选择数据库

con->setSchema("database_name");

// 准备JSON数据

Json::Value json;

json["name"] = "John";

json["age"] = 30;

json["city"] = "New York";

// 插入JSON数据

sql::PreparedStatement *stmt;

stmt = con->prepareStatement("INSERT INTO table_name (json_data) VALUES (?)");

stmt->setString(1, json.toStyledString());

stmt->execute();

delete stmt;

// 查询数据库中的JSON数据

sql::Statement *query;

sql::ResultSet *res;

query = con->createStatement();

res = query->executeQuery("SELECT * FROM table_name");

while (res->next()) {

Json::Value result;

Json::Reader reader;

reader.parse(res->getString("json_data"), result);

cout << "Name: " << result["name"].asString() << endl;

cout << "Age: " << result["age"].asInt() << endl;

cout << "City: " << result["city"].asString() << endl;

}

delete res;

delete query;

delete con;

} catch (sql::SQLException &e) {

cout << "MySQL Error: " << e.what() << endl;

}

return 0;

}

```

注意替换代码中的`username`、`password`、`database_name`和`table_name`为你实际的数据库信息。这个示例代码使用MySQL数据库和JSONcpp库来处理JSON数据,你还需要下载并安装相应的库。

上述代码的思路是将JSON数据转换为字符串并存储到数据库中的一个字段中,然后在查询时再将字符串转换为JSON对象进行解析和处理。你可以根据实际需求进行调整和修改。

0