Java中JSON格式的简单应用例子

1.  网上支持JSON封装的JAR库包有很多,有些功能比较简单,有些提供的功能比较完善,比如org.json.simple包,太简单了,很多基础的功能都没有,而com.alibaba.fastjson包则比较完善,由于项目中已经有该包,所以直接使用。

2.  JSON中主要的类有两个:JSONObject和JSONArray,前者和后者的区别是,前者封装下一层是用{}的方式,而后者是用[]的方式,后者是用在同一层次有多项记录的情况,也就是并列(数组)的情况。

3.  封装列子:

       JSONObject json =new JSONObject();                                //创建jsonobject对象

       Map<String,String> map = new HashMap();                       //创建map对象

       JSONArray array =new JSONArray();                             //创建jsonarray对象

       Date date = newDate();                                        //获取当前时间对象

       SimpleDateFormat sdf= new SimpleDateFormat("yyyyMMddHHmmss");     //时间转换格式

 

       map.put("PROV_CODE","20");

       map.put("DATA_SOURCE",local_id);

       map.put("NODE_ID",node_id);

       map.put("BATCH_CODE",batch_id);

       map.put("BATCH_TYPE","0");

       map.put("EVENT_TYPE_ID","0");

       map.put("REC_RECORD_CNT",org_bill_list.size()+"");

       map.put("REPEAT_RECORD_CNT",repeat_bill_list.size()+"");

       map.put("START_TIME",sdf.format(date));

       map.put("END_TIME",sdf.format(date));

       array.add(map);

       json.put("data",array);

    System.out.println(json.toJSONString());

 

打印结果:

{"data":[{"BATCH_CODE":"1234","BATCH_TYPE":"0","DATA_SOURCE":"200","END_TIME":"20170210162223","EVENT_TYPE_ID":"0","NODE_ID":"127.0,0,1","PROV_CODE":"20","REC_RECORD_CNT":"0","REPEAT_RECORD_CNT":"0","START_TIME":"20170210162223"},{"$ref":"$.data[0]"}]}

--先用JSONArray封装两个并列的map,类似[{},{}]的格式,再用JSONObject在最外层封装一层,类似{“data”:[{},{}]}的格式。总而言之,同一层的多条并列加入json消息包时用JSONArray.add封装,外层封装内层时用JSONObject.put封装。

4. 解析例子

JSON的解析是用JSONObject.getJSONArray(key)来获取下一层的并列记录数组。用JSONArray.getJSONObject(intindex)的方式获取json数组中的具体jsonobject对象,再通过JSONObject.get(key)的方式获取某个标签下的数据信息。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值