c++库:jsoncpp

安装

https://github.com/open-source-parsers/jsoncpp
1. sudo apt-get -y install libjsoncpp-dev scons
2. tar zxvf jsoncpp-0.10.7.tar.gz
3. cd jsoncpp-0.10.7
4. scons platform=linux-gcc
5. sudo cp ./libs/linux-gcc-5.4.0/libjson_linux-gcc-5.4.0_libmt.* /usr/local/lib/ -a

生成json或解析json

1. Json::Value 只能处理 ANSI 类型的字符串
2. Json::Value是一种很重要的类型,可以代表任意类型int, string, object, array
3. 通过key访问节点
4. 是否存在节点:isNull()
5. 删除子对象:removeMember("key")
6. 反序列化json:parse()
7. 序列化json:toStyledString()

示例

/**

  • @description: 解析json字符串
  • @param {type}
  • @return:
    */
    int parse(string jsonStr) {
    Json::Value root;
    Json::Reader reader;
    if(reader.parse(posenetResult, root)) {
    // 元素
    string name = root[“age”].asString();
    int age = root[“age”].asInt();
    // 数组
    for(auto i : root[“array”]) { // root[“array”].size()
    int v = i.asInt();
    }
    return 0;
    }
    return -1;
    }

/**

  • @description: json字符串
  • @param {type}
  • @return:
    */
    int create() {
    Json::Value root;
    root[“a”].append(1);
    Json::Value arrayObj; // 构建对象
    arrayObj.append(1); // 插入数组成员
    arrayObj.append(2);
    root[“array”].append(arrayObj);
    string str = root.toStyledString();
    }

json文件

1. 读取json文件
std::ifstream is;  

is.open (filename, std::ios::binary );
if (reader.parse(is, root)) {
}
2. 写入json文件
Json::FastWriter writer;
std::string strWrite = writer.write(root);
std::ofstream ofs;
ofs.open(“test_write.json”);
ofs << strWrite;
ofs.close();

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值