1.下载工具
JsonCpp下载: https://sourceforge.net/projects/jsoncpp/files/
比如下载的 jsoncpp-src-0.5.0.tar.gz:
tar -zxvf jsoncpp-src-0.5.0 -C jsoncpp
① 安装JsonCpp需要下载JsonCpp和Scon还需要机器上有python
② scons又是一个牛叉的工具,功能和GNU make一样,又比make简单多了。scons是python工具,需要先安装好python。
2.安装
(1) 安装 scons
sudo apt-get install scons
(2) 切换到 jsoncpp 目录
python /usr/bin/scons platform=linux-gcc
(3) 生成静态和动态库文件
在jsoncpp/libs/linux-gcc-4.7目录下
libjson_linux-gcc-4.7_libmt.a
libjson_linux-gcc-4.7_libmt.a
sudo mkdir /usr/local/lib
(4) 把两个库文件拷贝到/usr/local/lib目录下
sudo cp libjson_linux-gcc-4.7_libmt.* /usr/local/lib
(5) 将静态库重命名为libjsoncpp.a libjsoncpp.so (mv 命令)
(6) 切换到 jsoncpp/include/json 目录
sudo mkdir /usr/local/include/jsoncpp
sudo cp * /usr/local/include/jsoncpp
(1)包含头文件
#include <jsoncpp/json.h>
(2) 编译
加链接选项 -ljsoncpp
2.实例测试
qt
工程文件.pro添加
LIBS += -ljsoncpp
test.cpp
#include <jsoncpp/json/json.h>
#include <fstream>
#include <iostream>
using namespace std;
int main() {
Json::Value root;
Json::FastWriter writer;
Json::Value person;
person["name"] = "hello world";
person["age"] = 100;
root.append(person);
std::string json_file = writer.write(root);
ofstream ofs;
ofs.open("test2.json");
if (!ofs.is_open()) {
cout << "open file error!" << endl;
return -1;
}
ofs << json_file;
ofs.close();
return 0;
}
输出结果:
[{“age”:100,“name”:“hello world”}]
实例2:
#include <jsoncpp/json/json.h>
#include <fstream>
#include <iostream>
using namespace std;
int main() {
Json::Value root;
Json::Value arrayObj;
Json::Value item;
Json::FastWriter writer;
for (int i=0; i<10; i++)
{
item["key"] = i;
arrayObj.append(item); //数组项添加
}
root["key1"] = "value1";
root["key2"] = "value2";
root["key3"] = 0x100;
root["key4"] = true;
root["key5"] = "中国人";
item =root["key5"];
root["array"] = arrayObj;
std::cout << root.toStyledString();
std::cout<<writer.write(root);
}