最近想尝试一下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));
}
最后的结果