转自 :http://blog.csdn.net/yuanxiaobo007/article/details/26229615
- #include"json.h"
- typedefJson::WriterJsonWriter;
- typedefJson::ReaderJsonReader;
- typedefJson::ValueJsonValue;
- voidprint(JsonValuev)
- {
- JsonValue::Membersmem=v.getMemberNames();
- for(autoiter=mem.begin();iter!=mem.end();iter++)
- {
- cout<<*iter<<"t:";
- if(v[*iter].type()==Json::objectValue)
- cout<<endl;
- print(v[*iter]);
- }
- elseif(v[*iter].type()==Json::arrayValue)
- cout<<endl;
- autocnt=v[*iter].size();
- for(autoi=0;i<cnt;i++)
- print(v[*iter][i]);
- }
- if(v[*iter].type()==Json::stringValue)
- cout<<v[*iter].asString()<<endl;
- if(v[*iter].type()==Json::realValue)
- cout<<v[*iter].asDouble()<<endl;
- if(v[*iter].type()==Json::uintValue)
- cout<<v[*iter].asUInt()<<endl;
- else
- cout<<v[*iter].asInt()<<endl;
- return;
- }
//搜索json中指定的key的value,这是原创,哈哈
-
- stringGetJsonStringValue(stringstrContent,string&strKey,Json::Valuev)
- if(!strContent.empty())
- Json::Readerreader;
- if(!reader.parse(strContent,v))
- returnstring("");
-
- Json::Value::Membersmem=v.getMemberNames();
- Json::Value::Members::iteratorit;
- //遍历所有key广度搜索
- for(it=mem.begin();it!=mem.end();it++)
- if(*it==strKey)
- if(v[*it].type()==Json::stringValue)
- returnv[*it].asString();
- returnstring("");
-
- //如果未找到,再深度搜索
- for(it=mem.begin();it!=mem.end();it++)
- Json::ValueTypetype=v[*it].type();
- if(type==Json::objectValue)
- stringstrvalue=GetJsonStringValue(string(""),strKey,v[*it]);
- if(!strvalue.empty())
- returnstrvalue;
- if(type==Json::arrayValue)
- for(inti=0;i<v[*it].size();i++)
- //如果在递归的过程中已找到,则返回
- stringstrvalue=GetJsonStringValue(string(""),v[*it][i]);
- if(!strvalue.empty())
- returnstrvalue;
- }
(编辑:李大同)
【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!
|