c++ & java解析JSON格式数组
c++解析JSON格式数组
参考文章:http://blog.hehehehehe.cn/a/17907.htm,http://blog.csdn.net/u010319687/article/details/39345053,http://rapidjson.org/zh-cn/md_doc_features_8zh-cn.html。
rapidjson的具体使用步骤:
- 下载rapidjson放到c++项目的include目录中,下载地址:http://download.csdn.net/detail/zerolxl/4828301 。
- 引入头文件,直接在程序中应用:
...
char js[200] = "[{\"hello\" : \"1\", \"hello2\" : 2, \"hello3\" : \"world3\"},{\"hello\" : \"11\", \"hello2\" : 22, \"hello3\" : \"world33\"},{\"hello\" : \"111\", \"hello2\" : 222, \"hello3\" : \"world333\"}]";
rapidjson::Document doc;
doc.Parse<rapidjson::kParseDefaultFlags>(js);
//判断读取成功与否和是否为数组类型
if (doc.HasParseError() || !doc.IsArray())
{
cout<<"get json data err!"<<endl;
return false;
}
for(unsigned int i=0;i<doc.Size();i++)
{
//逐个提取数组元素(声明的变量必须为引用)
rapidjson::Value &v=doc[i];
string hello;
int hello2;
string hello3;
//判断各属性是否存在(可以支持中文(UTF8格式))
if(v.HasMember("hello") && v.HasMember("hello2") && v.HasMember("hello3"))
{
//按属性提取数据
hello=v["hello"].GetString();
hello2=v["hello2"].GetInt();
hello3=v["hello3"].GetString();
cout<<hello<<", hello2="<<hello2<<", hello3="<<hello3<<endl;
}
}
- -
java解析JSON格式数组
参考文章:http://www.cnblogs.com/lanxuezaipiao/archive/2013/05/24/3096437.html,http://www.open-open.com/lib/view/open1401934522556.html。
org.json具体使用步骤:
- 在工程中引入外部jar包:json.org.jar,在http://download.csdn.net/detail/lanxuezaipiao/5440983上下载。
- 参考:http://blog.sina.com.cn/s/blog_6400e5c50101ak5j.html,在程序中应用。
ps:c++用tinyXML解析XML配置文件参考文章:http://wenku.it168.com/d_000964990.shtml,http://blog.chinaunix.net/uid-23381466-id-3360203.html,http://blog.csdn.net/L_Andy/article/details/40615517。
c++ log4cplus开源日志系统参考文章:http://my.oschina.net/lovecxx/blog/185951#OSC_h1_1。