一、在ubuntu下使用Json.cpp,
1、包括头文件 <json/json.h>
2、-ljson
二、Json(JavaScript Object Notation )是一种轻量级的数据交换格式。简而言之,Json组织形式就和python中的字典, C/C++中的map一样,是通过key-value对来组织的,key是任意一个唯一字符串,value可以是bool,int,string 或者嵌套的一个json。
Json::value root(Json::intvalue/objectvalue);
三、添加json成员方式 :
普通类型 root["str"] = int型/"string型”/bool型;
数组类型 root["str1"].append(支持的类型);
四、对Json进行解析:
Json::Reader reader;
reader.parse(文件描述符/字符串指针,root); //解析错误返回 0;
解析成功后可以通过root的key值进行查看,如root[key1][key2],可以asINT等转换格式。
五、把Json::Value对象写到string对象中:
Json::Writer 和 Json::Reader相反,是把Json::Value对象写到string对象中,而且Json::Writer是个抽象类,被两个子类Json::FastWriter和Json::StyledWriter继承。
简单来说FastWriter就是无格式的写入,这样的Json看起来很乱没有格式,而StyledWriter就是带有格式的写入,看起来会比较友好。
Json::FastWriter fwr; string str = fwr.write(root);
Json::StyledWriter swr; string str = swr.write(root);
六、其他一些对json的操作
1、判断key是否存在 bool Json::Value::isMember ( const std::string & key) const;如 root.isMember("record");
2、判断json中某key值是否为null; bool Json::Value::isNull ( ) const; 当差Null的key值不存在时会生成一个值为Null的key。
3、得到json中所有的key值:Value::Members Json::Value::getMemberNames ( ) const;返回值Value::Members是string的数 组。