Linux 拨号vps windows公众号手机端

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

lewis 9年前 (2017-02-13) 阅读数 14 #程序编程
文章标签 c++json数据库

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

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

#include <iostream>
#include <mysql_driver.h>
#include <mysql_connection.h>
#include <cppconn/statement.h>
#include <cppconn/prepared_statement.h>
#include <cppconn/resultset.h>
#include <cppconn/exception.h>
#include <json/json.h>

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;
}

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

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

版权声明

本文仅代表作者观点,不代表米安网络立场。

发表评论:

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。

热门