网易博客旧文-----在WINDOWS MOBILE中怎样利用jsoncpp剖析和创建json串

[复制链接]
发表于 2025-12-5 01:17:13 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?立即注册

×
在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;
  1. for(int i=0;i<10;i++)  
  2. {  
  3.         item["key"]=i;  
  4.         arrayObj.append(item);  
  5. }  
  6. root["key1"]="value1";  
  7. root["key2"]="value2";  
  8. root["array"]=arrayObj;  
  9. // std::string out=root.toStyledString(); // 格式化输出
  10. Json::FastWriter write;
  11. 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格式的对象
  1. if(reader.parse(strValue,value))//解析出json放到json中区  
  2. {  
  3.         std::string out=value["key1"].asString();  
  4.         std::cout<<"key1=";
  5.         std::cout<<out<<std::endl;  
  6.         const Json::Value arrayObj=value["array"];//迭代器  
  7.         for (int i=0; i < arrayObj.size();i++)   
  8.         {  
  9.                 out=arrayObj[i]["key2"].asString();  
  10.                 std::cout<<out;  
  11.                 if(i!=arrayObj.size()-1)  
  12.                         std::cout<<std::endl;;  
  13.         }  
  14. }  
复制代码
如果必要用库的方式调用,起首参考我的上一篇博客天生jsoncpp库
然后在详细工程中引用这个库,就不必要到场jsoncpp的源代码了,注意必要到场预处置惩罚器 JSON_DLL
参考资料:

回复

使用道具 举报

登录后关闭弹窗

登录参与点评抽奖  加入IT实名职场社区
去登录
快速回复 返回顶部 返回列表