Qt 4.8.5 jsoncpp lib 一、参考文档: 1. QtCreator动态编译jsoncpp完美支持x86和arm平台 http://www.linuxidc.com/Linux/2012-02/53678.htm 2. Jsoncpp的使用 http://www.cnblogs.com/kex1n/archive/2011/12/02/2272328.html 二、Drownload jsoncpp open source: 经过测试,尽量下载参考文档1里的源代码,我从github上下载最新的版本,在我的Qt 4.8.5 上面编译会出问题,而使用参考文档里的源代码没有问题。 三、使用流程: 1. 将include\json里面所有文件复制到刚刚新建的json文件夹里(共8个文件,全部是.h的头文件); 2. 将src/lib_json里面的所有文件全部复制到json文件里,共8个文件; 3. 通过复制这些文件,就组成了我们所要的JSON库的全部源代码了。完整的文件清单见下面: autolink.h config.h features.h forwards.h json_batchallocator.h json.h json_internalarray.inl json_internalmap.inl json_reader.cpp json_value.cpp json_valueiterator.inl json_writer.cpp reader.h sconscript value.h writer.h 4. 把刚刚准备好的JSON库,复制到项目的同一目录下; 5. 在需要用到json解析的文件中引入Json库:#include "json/json.h"; 6. 参考《参考文档》中的例子进行测试。 四、Test Demo: #include "mainwindow.h" #include "ui_mainwindow.h" #include "unistd.h" #include "json/json.h" MainWindow::MainWindow(QWidget *parent) : QMainWindow(parent), ui(new Ui::MainWindow) { ui->setupUi(this); using namespace std; std::string strVale = "{\"number\":\"13\",\"name\":\"zeng\", \"age\":\"34\"}"; ui->parseString->setText(QString::fromStdString(strVale)); } MainWindow::~MainWindow() { delete ui; } void MainWindow::on_parse_clicked() { using namespace std; Json::Reader reader; Json::Value value; if ( reader.parse(ui->parseString->toPlainText().toStdString(), value)) { ui->number->setText(QString::fromStdString(value["number"].asString())); ui->name->setText(QString::fromStdString(value["name"].asString())); ui->age->setText(QString::fromStdString(value["age"].asString())); } } void MainWindow::on_synthetic_clicked() { Json::FastWriter writer; Json::Value person; person["number"] = "111"; person["name"] = "zengjf"; person["age"] = "100"; std::string jsontofile = writer.write(person); ui->parseString->setText(QString::fromStdString(jsontofile)); } void MainWindow::on_pushButton_clicked() { ui->parseString->setText(""); }
时间: 2024-10-12 10:22:10