使用RestTemplate进行部分JSON检索

时间:2016-08-11 13:27:31

标签: json spring get resttemplate spring-web

我正在使用Spring RestTemplateGET request发送给第三方服务。它返回巨大的JSON,表示list of some entities。但是每个实体都非常庞大,并且包含大量不必要的数据。我需要从每个实体只获得三个字段。如何构建我的模型来实现它?例如,如果我们有JSON

{
   "entity1": "foo",
   "entity2": "bar",
   "entity3": "...",
   "entity4": {
       "aaa": "...",
       "bbb": "...",
       "ccc": 5
   },
   "entity5": [
       "...",
       "..."
   ]
}, {
   "entity1": "foo",
   "entity2": "bar",
   "entity3": "...",
   "entity4": {
       "aaa": "...",
       "bbb": "...",
       "ccc": 5
   },
   "entity5": [
       "...",
       "..."
   ]
}

我有一节课:

public class SomeModel implements Serializable {

    private static final long serialVersionUID = 1L;

    private Long entity1;
    private String entity2;    
}

如何将此JSON转换为此类的实例数组?

1 个答案:

答案 0 :(得分:3)

如果您使用的是Jackson,则可以使用@JsonIgnoreProperties(ignoreUnknown = true)为您的模型类注释,如下所示:

@JsonIgnoreProperties(ignoreUnknown = true)
public class PosterDishModel implements Serializable {

    private static final long serialVersionUID = 1L;

    private Long entity1;
    private String entity2;    
}

基本上,它指示杰克逊丢弃所收到物品中的任何未知属性。

请注意,这不会阻止整个对象通过网络传输,流量将相同,但您要反序列化的对象将不包含不必要的字段和数据。