使用Jackson-Json解析一个嵌套的Json字符串

最近想尝试一下java的爬虫的编写,于是不可避免的遇到了要处理json数据的问题,于是乎用到了Jackson-json这个jar包

关于这个jar包

先在工程中导入这个jar包,然后创建一个ObjectMapper对象

ObjectMapper objectmapper=new ObjectMapper;

然后读入我的json字符串(str),得到JsonNode对象

JsonNode node=mapper.readTree(str);

之后就是处理这个JsonNode对象了

但是我的json字符串长这样

19905B3D-9B67-8DB6-CFE6-EE4EFB0ACBD5.png

把节点展开

2786488B-BFFB-1DF3-D841-DD540098810C.png

但其实我只要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));
		}

最后的结果

456D9F26-A859-22E6-075D-BDCE5A482EAE.png

收藏 (0)
评论列表
正在载入评论列表...
我是有底线的
为您推荐
    暂时没有数据