json的反序列化

在开发的过程中,我们避免不了去访问别人的接口,那么就意味着我们需要处理数据返回给前端。一般调用接口以后我们得到的数据是一个json的格式,那么这个时候我们就需要,自己反序列化这个数据。
首先我们先来看看json数据返回的格式。
{
“status”:200,
“error”:null,
“pageInfo”:
{
“totelRecord”:98,
“pageIndex”:1,
“pageSize”:10
},
“data”:
[{“cinemaCode”:”xxxxxxx”,”cinemaName”:”华士达影城(邻水店)”,”movieName”:”妖猫传”,”seatNum”:”88”,”tp”:”2D”,”th”:”VIP6厅”,”lang”:”国语”,”dt”:”2017-12-28”,”startTime”:”11:00”,”endTime”:”13:09”},{“cinemaCode”:”xxxxxxx”,”cinemaName”:”华士达影城(邻水店)”,”movieName”:”妖猫传”,”seatNum”:”88”,”tp”:”2D”,”th”:”新世纪百货邻水商都2厅”,”lang”:”国语”,”dt”:”2017-12-28”,”startTime”:”13:15”,”endTime”:”15:24”}
]}
这是我访问一个接口返回的数据,可以看到数据的格式是非常规范的,这样的格式我们非常容易的解决。
我们需要定义实体bean,bean的格式就是返回数据的格式。
MessModel result = new ObjectMapper().readValue(s, MessModel.class);
然后我们json转换直接就拿到数据了。

第二种情况。
[{“cinemacode”:”xxxxxxx”,”boxoffice”:”148983.0”}]
可以看到。这个上面的格式有点,不一样了,不能直接用实体bean接受数据。我们需要换一种方法。
ObjectMapper objectMapper = new ObjectMapper();
JavaType javaType = objectMapper.getTypeFactory().constructParametricType(List.class, ReposeMessVo.class);
List mess = null;
mess = objectMapper.readValue(responseMess, javaType);

这样我们就可以拿到数据了。

你可能感兴趣的:(json解析)