Json的JSONArray和JSONObject

在Java中用Json进行数据传输时,有时候传输的数据不是简单的一对一的键值对,而是会涉及到层次不齐的键值对,这个时候,就需要用JSONArray和JSONObject的方式来解决问题。在用到的Java中,要导入相应的JSON jar包。

Order order1 = new Order();
Order order2 = new Order();
Order order3 = new Order();
order1.setTxnAmt("1000");
order1.setTxnDt("10");

order2.setTxnAmt("2000");
order2.setTxnDt("20");

 order3.setTxnAmt("3000");
 order3.setTxnDt("30");
 order3.setTxnCardType("1");

List<Order> list = new ArrayList<Order>();      
list.add(order1);
list.add(order2);
list.add(order3);

模拟一个例子,就是将一个Order订单的对象,设置交易的金额,交易的属性和交易的银行卡类型,然后添加到list中。有时候或许不是用一个bean对象,而是用map,同样用put属性方法,一一放进一个map,然后再放进一个list中。

Map<String,String> map1 = new HashMap<String,String>();
        Map<String,String> map2 = new HashMap<String,String>();
        Map<String,String> map3 = new HashMap<String,String>();
        List<Map<String,String>> list = new ArrayList<Map<String,String>>();
        map1.put("name","aaa");
        map1.put("age","22");
        map1.put("sex","男");
        list.add(map1);

        map2.put("name","bbb");
        map2.put("age","23");
        map2.put("sex","女");
        list.add(map2);

        map3.put("name","ccc");
        map3.put("age","24");
        map3.put("sex","男");
        list.add(map3);

接下来就是将list转化成JSONArray对象,

 String jsonStr = JSONArray.fromObject(list);

这在传输数据的时候,有时候有必要转换成字符串的格式,字符串能够在字符流,转换成对象很好的传输。
然后再转换成JSONArray对象取出对象。

 JSONArray jsonArray = JSONArray.fromObject(jsonStr);

当然,也可以直接:

JSONArray jsonArray = JSONArray.fromObject(list);

这时候就分析JSONArray的特性,其实质是一个数组,数组里面装了JSONObject,可以直接通过访问数组的方式访问JSONObject对象。一个JSONObject对象就是一个bean对象,或者一个map,而解析获取其中的值都是用get(“key”)方法,这个与map取值方式极为相似,要取哪个对应的值,get哪个属性,所以,一般也把JSONObject看做特殊的map对象。

也可以对JSONArray按照数组的形式取得长度,遍历值,获取得到JSONObject:

 System.out.println(ja.size());
    for (int i = 0; i < ja.size(); i++) {
                //数组方法取对象
    JSONObject getJsonObj = jsonArray.getJSONObject(i);                 System.out.println(getJsonObj.get("txnAmt"));   
            }
    }

就能够解析获取到对应的值。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值