数据解析为json格式
2016-01-04 10:23
721 查看
json是一种轻量级的数据交换格式。 易于人阅读和编写,同时也易于机器解析和生成(一般用于提升网络传输速率)。
json格式规则:
1、并列数据间用(",")分隔。
2、映射用(";")表示,例如:"name":"Rose"相当于name="Rose"。
3、并列数据的集合(数组)用("[]")表示。
3、映射的集合(对象)用("{}")表示。
比较复杂的集合嵌套转成json格式,例如:使用json要引入jar包:json-lib-2.1.jar;ezmorph-1.0.6.jar;commons-logging.jar;commons-lang-2.3.jar;commons-collections-3.1.jar;commons-beanutils-1.7.0.jar
//集合嵌套
Map<String,Object> map=new HashMap<String,Object>();
map.put("ret_code", "0");
ap.put("ret_msg", "");
Map<String,Object> data=new HashMap<String,Object>();
List<Object> user_info=new ArrayList<Object>();
Map<String,Object> info=new HashMap<String,Object>();
info.put("qsid", "357");
Map<String,Object> asset=new HashMap<String,Object>();
asset.put("zcc", "939389.0000");
info.put("asset", asset);
info.put("account", "23192794");
info.put("fundid", "2211");
List<Object> business=new ArrayList<Object>();
Map<String,Object> b=new HashMap<String,Object>();
b.put("999", "0");
b.put("2135", "1004616744");
business.add(b);
info.put("business", business);
user_info.add(info);
data.put("user_info", user_info);
data.put("busin_date", "20151015");
List<Object> divided=new ArrayList<Object>();
Map<String,Object> d=new HashMap<String,Object>();
d.put( "stage", "3");
d.put("record_date", "20151015");
d.put("exdividend_date", "20150408");
divided.add(d);
data.put("divided_data", divided);
map.put("ret_data", data);
//转换成json
JSONObject object_json=JSONObject.fromObject(map);//map转成json对象
System.out.println(json);
输出结果:
{
"ret_code":"0",
"ret_data":{
"busin_date":"20151015",
"user_info":[
{
"qsid":"357",
"asset":
{
"zcc":"939389.0000"
},
"account":"23192794",
"fundid":"2211",
"business":[
{
"2135":"1004616744",
"999":"0"
}
]
}
],
"divided_data":[
{
"exdividend_date":"20150408",
"record_date":"20151015",
"stage":"3"
}
]
},
"ret_msg":""
}
工具类JSONArray和JSONObject可以将对象转换成json数组和json对象
//list转成json数组
JSONArray array_json=JSONArray.fromObject(list);
//对象转换json数组
UserInfo user = new UserInfo(1001,"张三");
JSONArray jsonArray = JSONArray.fromObject(user);
//数组转换json数组
String[] arr = {"asd","dfgd","asd","234"};
JSONArray jsonarray = JSONArray.fromObject(arr);
如果要将json返回前端,写到输出流即可,例如:
response.setContentType("text/html;charset=utf-8");
Writer writer=response.getWriter();
writer.writer(json.toString);
writer.flush();
writer.close();
writer=null;
json格式规则:
1、并列数据间用(",")分隔。
2、映射用(";")表示,例如:"name":"Rose"相当于name="Rose"。
3、并列数据的集合(数组)用("[]")表示。
3、映射的集合(对象)用("{}")表示。
比较复杂的集合嵌套转成json格式,例如:使用json要引入jar包:json-lib-2.1.jar;ezmorph-1.0.6.jar;commons-logging.jar;commons-lang-2.3.jar;commons-collections-3.1.jar;commons-beanutils-1.7.0.jar
//集合嵌套
Map<String,Object> map=new HashMap<String,Object>();
map.put("ret_code", "0");
ap.put("ret_msg", "");
Map<String,Object> data=new HashMap<String,Object>();
List<Object> user_info=new ArrayList<Object>();
Map<String,Object> info=new HashMap<String,Object>();
info.put("qsid", "357");
Map<String,Object> asset=new HashMap<String,Object>();
asset.put("zcc", "939389.0000");
info.put("asset", asset);
info.put("account", "23192794");
info.put("fundid", "2211");
List<Object> business=new ArrayList<Object>();
Map<String,Object> b=new HashMap<String,Object>();
b.put("999", "0");
b.put("2135", "1004616744");
business.add(b);
info.put("business", business);
user_info.add(info);
data.put("user_info", user_info);
data.put("busin_date", "20151015");
List<Object> divided=new ArrayList<Object>();
Map<String,Object> d=new HashMap<String,Object>();
d.put( "stage", "3");
d.put("record_date", "20151015");
d.put("exdividend_date", "20150408");
divided.add(d);
data.put("divided_data", divided);
map.put("ret_data", data);
//转换成json
JSONObject object_json=JSONObject.fromObject(map);//map转成json对象
System.out.println(json);
输出结果:
{
"ret_code":"0",
"ret_data":{
"busin_date":"20151015",
"user_info":[
{
"qsid":"357",
"asset":
{
"zcc":"939389.0000"
},
"account":"23192794",
"fundid":"2211",
"business":[
{
"2135":"1004616744",
"999":"0"
}
]
}
],
"divided_data":[
{
"exdividend_date":"20150408",
"record_date":"20151015",
"stage":"3"
}
]
},
"ret_msg":""
}
工具类JSONArray和JSONObject可以将对象转换成json数组和json对象
//list转成json数组
JSONArray array_json=JSONArray.fromObject(list);
//对象转换json数组
UserInfo user = new UserInfo(1001,"张三");
JSONArray jsonArray = JSONArray.fromObject(user);
//数组转换json数组
String[] arr = {"asd","dfgd","asd","234"};
JSONArray jsonarray = JSONArray.fromObject(arr);
如果要将json返回前端,写到输出流即可,例如:
response.setContentType("text/html;charset=utf-8");
Writer writer=response.getWriter();
writer.writer(json.toString);
writer.flush();
writer.close();
writer=null;
相关文章推荐
- json格式的Ajax提交示例代码
- php使用curl发送json格式数据实例
- JS对象与JSON格式数据相互转换
- 基于javascript的JSON格式页面展示美化方法
- 深入理解JSON数据源格式
- jQuery怎么解析Json字符串(Json格式/Json对象)
- javascript学习笔记(六)数据类型和JSON格式
- 时间类型转json后格式化显示方法
- mybaits获取的结果集不能成功转JSON格式的问题
- JSON.stringify()JSON转字符串 和 JSON.parse()字符串转JSON对象
- Android开发入门之采用JSON格式返回数据给资讯客户端
- 在java里拼接JSON
- 轻开平台:可调用标签
- json格式生成
- jquery ajax方法提交json格式数据报错,一直返回error问题-已解决
- spring mvc@Responsebody注解 对返回json格式数据的支持
- 判断字符串是否是json格式
- 前端json格式的介绍,转换以及解析
- JSON格式
- 微信公众平台基础研究(六)-自定义菜单的json格式