很久没写点东东了, 也来一个!
这些天做通信, 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