1.[转载]jsoncpp 几种解析json方法
[转载]jsoncpp 几种解析json方法
,源码网上找了下,源码发现一个tinyjson,源码不过是基于boost的,虽然说他本身很小,源码不过加上boost。源码足球投注源码程序。源码盲盒rails源码。源码这。源码。源码项目本身没有上,源码为了个这个不合算。源码。源码然后看了下jsoncpp,源码突破绿线源码虽然大了点,不过还好,源码就拿来用。源码其实解析json字符串,用他的金牌源码鼎盛2几个东西就足够Json::Value 表示一个json值对象,后面会频繁用到Json::Reader read对象,用来解析josn字符串,有reader就有writer --Json::Writer假设有这么个json字符串,这里主要讲一下带数组这种的广告统计网站源码串,象最简单的{ "key":"value"}就不讲了- -string strJson ="{ "key1":"value1","array":[{ "key2":"value2","key3":"aa"},{ "key2":"value3","key3":"bb"},{ "key2":"value4","key3":"cc"}]}";一种方法:Json::Reader reader;Json::Value val;if(!reader.parse(strJson,val))return -1;std::string str = val["key1"].asString();Json::Value obj_array = val["array"];for (int i = 0; i< obj_array.size();i++){ str =obj_array[i]["key2"].asString();str =obj_array[i]["key3"].asString();}一次for循环就全部解析出来了另一种,用他内建的迭代器,其实也就是他自己的一个vector<string成员,可以自己去看json:value的定义Json::Value::Membersmember;//Members这玩意就是vector<string,typedef了而已for (Json::Value::iterator itr =obj_array.begin(); itr != obj_array.end(); itr++){ member =(*itr).getMemberNames();for(Json::Value::Members::iterator iter = member.begin(); iter !=member.end(); iter++){ stringstr_temp = (*itr)[(*iter)].asString();}}其实这种方法和上面那个是一样的,只不过是写法不一样罢了,自己看你就会发现,上面一种,不过就是取了vector的size,然后直接取值.第一次写博,也不晓得写啥,这东西写着也算给是笔记吧,省的以后忘记了。