JsonCpp第一课 数据读取
作者:互联网
Jsoncpp是个跨平台的C++开源库,下载地址:http://sourceforge.net/projects/jsoncpp/。assert作为错误处理方法,会中止程序的运行,切记!
1)从文件中解析json信息
std::ifstream ifs;
ifs.open("testdata.json", std::ios::binary);
Json::Reader reader(Json::Features::strictMode());
Json::Value root;
if (NULL == reader.parse(ifs, root)) return;
2)从缓存中解析json信息
std::string strJsonText ="{\"total\":1,\"toReturn\":[{\"createTime\":\"20080806114526000+0800\",\"createUser\":\"张三\"}],\"success\":false}";
Json::Reader reader(Json::Features::strictMode());
Json::Value root;
if (NULL == reader.parse(istrJsonText, root)) return;
注意:
JsonCpp解析非法json时,会主动容错成字符类型,对字符类型取下标时,会触发assert终止程序。解决的方法:启用严格模式,当解析非法json时返回false,不再自动容错。创建读取对象的时候,指定特性:Json::Reader reader(Json::Features::strictMode());
不提倡使用 Json::Reader reader;
标签:读取,Reader,strictMode,json,JsonCpp,第一课,Json,reader,root 来源: http://blog.51cto.com/fengyuzaitu/2347577