网易博客旧文-----在WINDOWS MOBILE中如何利用jsoncpp解析和创建json串

在WINDOWS MOBILE中如何利用jsoncpp解析和创建json串
2013-05-06 11:00:39| 分类: WINCE开发 | 标签: |举报 |字号大中小 订阅

参考工程下载:

下载: 测试工程.rar

jsonCPP下载:
下载: jsoncpp-src-0.6.0-rc2.tar.gz

下载: jsoncpp-src-0.5.0.tar.gz

在java和苹果的开发中碰到json串时有现成的类或库可以用,但在windows mobile就没有这么幸运了,幸好我们有jsonCPP。
jsonCPP是一个非常好的开源的json解析和创建的API,json官方都推荐的。

首先在VS2008创建一个对话框的工程,把jsonCPP源代码目录的文件加入到工程中
在WINDOWS MOBILE中如何利用jsoncpp解析和创建json串 - xzhoumin - MMZHOU的博客

然后设置头文件位置
在WINDOWS MOBILE中如何利用jsoncpp解析和创建json串 - xzhoumin - MMZHOU的博客

添加测试代码,即可测试了,
1、测试创建json串
Json::Value root;//表示一个json格式的对象
Json::Value arrayObj;
Json::Value item;

for(int i=0;i<10;i++)  
{  
	item["key"]=i;  
	arrayObj.append(item);  
}  
root["key1"]="value1";  
root["key2"]="value2";  
root["array"]=arrayObj;  

// std::string out=root.toStyledString(); // 格式化输出
Json::FastWriter write;
std::string out=write.write(root); // 非格式化输出

2、测试完整解析
Json::Reader reader;
Json::Value root;
bool parsingSuccessful = reader.parse( Cstring2string(m_jsonValue), root );
if ( parsingSuccessful )
{
CString strResult;
printValueTree(strResult,root);
m_jsonResult = strResult;
UpdateData(FALSE);
}

3、测试解析
std::string strValue=“{“key1”:“value1”,“array”:[{“key2”:“value2”},{“key2”:“value3”},{“key2”:“value4”}]}”;
Json::Reader reader;//json解析
Json::Value value;//表示一个json格式的对象

if(reader.parse(strValue,value))//解析出json放到json中区  
{  
	std::string out=value["key1"].asString();  
	std::cout<<"key1=";
	std::cout<<out<<std::endl;  
	const Json::Value arrayObj=value["array"];//迭代器  
	for (int i=0; i < arrayObj.size();i++)    
	{  
		out=arrayObj[i]["key2"].asString();  
		std::cout<<out;  
		if(i!=arrayObj.size()-1)  
			std::cout<<std::endl;;  
	}  
}  

如果需要用库的方式调用,首先参考我的上一篇博客生成jsoncpp库
然后在具体工程中引用这个库,就不需要加入jsoncpp的源代码了,注意需要加入预处理器 JSON_DLL
参考资料:
http://blog.sina.com.cn/s/blog_610c1cad010140ho.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值