您的位置:首页 > Web前端 > JavaScript

Jackson-json解析一个嵌套的json字符串

2018-03-06 23:28 483 查看
最近想尝试一下java的爬虫的编写,于是不可避免的遇到了要处理json数据的问题,于是乎用到了Jackson-json这个jar包
关于这个jar包
先在工程中导入这个jar包,然后创建一个ObjectMapper对象
ObjectMapper objectmapper=new ObjectMapper;
然后读入我的json字符串(str),得到JsonNode对象
JsonNode node=mapper.readTree(str);
之后就是处理这个JsonNode对象了

但是我的json字符串长这样



把节点展开



但其实我只要shops属性下的json,所以这里相当于json对象的嵌套
所以我读进来的这个node其实就只有一个Json,我得一步一步往下取,当我取到shops时就会出现40个Json
 JsonNode lastnode=node.get("result").get("1584548").get("result").get(0).get("shops");

要注意的一点是
//必须确保node是一个json数组,不能像顶层那样只是一个json,不然直接用索引取会得到null,而且下标从零开始
取到shops时就简单了,贴上代码JsonNode newnode=null;
List<Shop> shoplist=new ArrayList<>();
for(int i=0;i<lastnode.size();i++) {
newnode=lastnode.get(i);
Shop shop=new Shop();
shop.setWord(newnode.get("item_title").asText());
shop.setImg(newnode.get("item_pic").asText());
shop.setPrice(newnode.get("item_current_price").asLong());
shoplist.add(shop);
}
for(int j=0;j<shoplist.size();j++) {
System.out.println(shoplist.get(j));
}最后的结果

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  常用jar包