虽然BCOS源码里有json-spirit的代码,但是我却发现它还使用了jsoncpp提供的东西,在这里对json和jsoncpp有一篇文章比较好,我附在这里,侵删:
https://www.cnblogs.com/kex1n/archive/2011/12/02/2272328.html
好啦:下面就是我自己的学习了:
和json-spirit一样jsoncpp也提供几个类:
Json::Value 表示值的类型
Json::Reader 对流或字符串解析成value
Json::Writer 将value转化成流或字符串
1.怎么读?
Json::Reader reader;
Json::Value value;
reader.parase(str,value);
其中str是要读取的流或者字符串,读到的东西就保存在value里,以后想读取json中的某一部分怎么办呢?
比如json是这样的
{ "ret":200, //http response code
"code":0, //busi return code
"info":"bad parameters" //infomation of response
}
只要value[ret].asInt就可以读到它的值为200
value[info].asString就可以读到bad parameters
2.怎么写?
Json::Value Obj //先创建一个json的对象
Json::Value item //创建要插入对象的条目
item["ret"] = 200; //赋值
obj.append(item) //插入
// 转换为字符串(带格式)
std::string out = Obj .toStyledString();
// 输出无格式json字符串
Json::FastWriter writer;
std::string out2 = writer.write(Obj );