JSONCPP 遍历所有值

来源:互联网 发布:高斯平滑滤波算法 编辑:程序博客网 时间:2024/05/29 04:15


很久没写点东东了, 也来一个!

这些天做通信, C++的, 用到了JSON. 于是使用JSONCPP. 为了处理省事, 需要取得KEY名, 各种查资料, 找到了. 自己写了一个输出Json所有KEY:VALUE的方法, 放出来方便大家参考!

  

#include "json.h"typedef Json::Writer JsonWriter;typedef Json::Reader JsonReader;typedef Json::Value  JsonValue;void print(JsonValue v){JsonValue::Members mem = v.getMemberNames();for (auto iter = mem.begin(); iter != mem.end(); iter++){cout<<*iter<<"\t: ";if (v[*iter].type() == Json::objectValue){cout<<endl;print(v[*iter]);}else if (v[*iter].type() == Json::arrayValue){cout<<endl;auto cnt = v[*iter].size();for (auto i = 0; i < cnt; i++){print(v[*iter][i]);}}else if (v[*iter].type() == Json::stringValue){cout<<v[*iter].asString()<<endl;}else if (v[*iter].type() == Json::realValue){cout<<v[*iter].asDouble()<<endl;}else if (v[*iter].type() == Json::uintValue){cout<<v[*iter].asUInt()<<endl;}else {cout<<v[*iter].asInt()<<endl;}}return;}

 

 

我懒, 为了少点用了C++11里面的关键字 auto, 以上代码在VS2012编译通过的. 不明白可以直接留言, 一定会回复, 虽然有时候会慢些...

 

 

转载请保留所有内容, 说明出处!

 

转自: http://hi.baidu.com/ayktx/item/55c1f478f8c3ff2ad7a89c98 


再加个下载吧,这是JSON数据的查看器,可以对值进行BASE64编/解码和UTF-8编/解码。网上找到过一个,但是是 .NET2.0的,还要安装那个,麻烦。这个是我自己写的,也是基于JSONCPP的,自己扩展了一点点。

http://download.csdn.net/detail/ayktx/5824789



原创粉丝点击