json有两种类型,jsonObject(即jsonNode)和jsonArray,jsonArray怎么遍历?为什么不能将jsonArray转换为list?

json有两种类型,jsonObject(即jsonNode)和jsonArray

1)jsonArray怎么遍历?

①、转为JsonArray格式 
②、使用Iterator进行遍历准备

            String relation = "[{"codeId":"1","codeName":"你们"},{"codeId":"2","codeName":"他们"}]";
            JSONArray ja=JSON.parseArray(relation);
            Iterator<Object> it = ja.iterator();
            List<PubCodeModel> list=new ArrayList<PubCodeModel>();
            while (it.hasNext()) {
                JSONObject ob = (JSONObject) it.next();
                PubCodeModel model = null;
                if(ob.getString("codeId")!=null){
                    model=new PubCodeModel();
                    model.setVcode(ob.getString("codeId"));
                }
                if(ob.getString("codeName")!=null){
                    model.setVname(ob.getString("codeName"));
                }
                if(model!=null){
                    list.add(model);
                }
            }
 
 
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18

关键CODE

Iterator<Object> it = ja.iterator();
while (it.hasNext()) {
JSONObject ob = (JSONObject) it.next();
}

2)为什么不能将jsonArray转换为list?因为转换为list之后,json串里的双引号就没有了。

String test= a//a的值为,[{"tableName":"org","row":[{"co1":"03","co2":"周","co3":"123"}]}]
List<Map> testList= mapper.readValue(test, List.class);//执行之后,testList的值为,[{tableName=org, row=[{co1=03, co2=周, co3=123}]}]

双引号就没有了,当我想获取row里面的co2的值,就不好处理了,没办法再使用mapper.readValue(testList.get(0).get("row"), List.class),因为mapper.readValue(testList.get(0)没有双引号,mapper.readValue这种方法处理不了。




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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值