Jackson的ObjectMapper的简单用法及语法

1.使用ObjectMapper要添加的依赖是

       <!--添加fastjson包-->
        <dependency>
            <groupId>com.fasterxml.jackson.core</groupId>
            <artifactId>jackson-databind</artifactId>
            <version>2.9.8</version>

2.对象转JSON字符串的方法

  List<RoomAddressDTO> roomAddressDTOS = costItemMonthUseDao.selectRoomAddressByCustomerName(param);
                ObjectMapper objectMapper = new ObjectMapper();
                String address = objectMapper.writeValueAsString(roomAddressDTOS);

3.JSON转对象

ObjectMapper objectMapper = new ObjectMapper();
List<RoomAddressDTO> list = objectMapper.readValue(address, List.class);

4.readTree()方法,此方法更灵活,可以只将用户感兴趣的Json串信息值提取出来。主要利用ObjectMapper提供的readTree和Jackson提供的JsonNode类来实现。

String test="{"results":[{"objectID":357,"geoPoints":[{"x":504604.59802246094,"y":305569.9150390625}]},{"objectID":358,"geoPoints":[{"x":504602.2680053711,"y":305554.43603515625}]}]}";

//此Json串比较复杂,包含了嵌套数组的形式,具有通用性。

//2.2.2.2实现反序列化
JsonNode node= objectMapper.readTree(test);      //将Json串以树状结构读入内存

JsonNode contents=node.get("results");//得到results这个节点下的信息

for(int i=0;i<contents.size();i++)  //遍历results下的信息,size()函数可以得节点所包含的的信息的个数,类似于数组的长度

{

System.out.println(contents.get(i).get("objectID").getIntValue()); //读取节点下的某个子节点的值

JsonNode geoNumber=contents.get(i).get("geoPoints");

for(int j=0;j<geoNumber.size();j++)     //循环遍历子节点下的信息

{

System.out.println(geoNumber.get(j).get("x").getDoubleValue()+"  "+geoNumber.get(j).get("y").getDoubleValue());

}

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值