安装
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();
来源:CSDN
作者:onj123
链接:https://blog.csdn.net/onj123/article/details/103879480