JSONCPP 遍历所有值


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

这些天做通信, 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



评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值