数据解析为json格式

来源:互联网 发布:西安软件新城二期工程 编辑:程序博客网 时间:2024/05/17 23:55
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; 
0 0
原创粉丝点击