Ubuntu+JsonCpp+Qt

**Ubuntu+JsonCpp+Qt**


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);
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值