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字符串长这样


把节点展开


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

最后的结果



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值