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这种方法处理不了。
声明:该文观点仅代表作者本人,入门客AI创业平台信息发布平台仅提供信息存储空间服务,如有疑问请联系rumenke@qq.com。