JSON(JavaScriptObjectNotation)是一种轻量级的数据交换格式。易于人阅读和编写。
同时也易于机器解析和生成。
它基于JavaScriptProgrammingLanguage,StandardECMA-2623rdEdition–December1999的一个子集。JSON采用完全独立于语言的文本格式,但是也使用了类似于C语言家族的习惯(包括C,C++,C#,Java,JavaScript,Perl,Python等)。
这些特性使JSON成为理想的数据交换语言。
JsonCpp是一个C++用来处理JSON数据的开发包。
以下是一些常用的API。
网址:http://jsoncpp.sourceforge.net/
下载编译参照网上
1,解析(json字符串转为对象)
std::stringstrDataJson;
Json::ReaderJReader;
Json::ValueJObject;
if(!JReader.parse(strDataJson,JObject))
{
cerr<<"parsejsonerror."<<endl;
returnbSuccess;
}
2,读取
std::stringstrMsg=JRec["msg"].asString();
intnRetCode=JRec["ret"]..asInt();
Json::ValueJList=JRec["data"]["list"];
intnSize=JList.size();
获取错误信息:JReader.getFormatedErrorMessages()
JRoot["stringdata"]=Json::Value("msg");
JRoot["intdata"]=Json::Value(10);
4,删除
JValue.removeMember("toberemove");
5,对象转为字符串
Json::FastWriterfast_writer;
strJRecList=fast_writer.write(JRoot);
//格式化之后的json,有回车换行符
std::stringstrOut=JRoot.toStyledString();