Json
发布时间:2022-04-22 发布网站:大佬教程 code.js-code.com
大佬教程收集整理的这篇文章主要介绍了JsonCpp遍历json,大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
- #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;
- }
大佬总结
以上是大佬教程为你收集整理的JsonCpp遍历json全部内容,希望文章能够帮你解决JsonCpp遍历json所遇到的程序开发问题。
如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。