马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有账号?立即注册
×
在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
参考资料:
|