Qt 4.8.5 jsoncpp lib  

一、参考文档:
1. QtCreator动态编译jsoncpp完美支持x86和arm平台

2. Jsoncpp的使用

二、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("");
}