RestTemplate getForObject到POJO

时间:2015-10-27 15:18:50

标签: spring resttemplate

我使用RestTemplate.getForObject()来检索包含几个对象和数组的json,我只想将此json中的一个对象转换为POJO,我不在乎这个json里面的其他对象。

解决这个问题的正确方法是什么?

编辑:

接受答案的另一种方法是,我们可以使用jacksons ObjectMapper

@Autowired
private ObjectMapper jacksonObjectMapper;

然后

LinkedHashMap obj1 = restTemplate.getForObject(uri, LinkedHashMap.class, params);
LinkedHashMap obj2 = (LinkedHashMap)test.get("flightStatuses");

Flight flight = jacksonObjectMapper.convertValue(obj2, Flight.class);

您明白了,只需从json结构中获取通用数据类型,然后使用ObjectMapper将其转换为您需要的类。

1 个答案:

答案 0 :(得分:2)

一种解决方案是创建一个包装类,其中包含要反序列化的POJO,并使用@JsonIgnoreProperties忽略所有其他属性。然后,您将检索包装器对象并从中获取POJO。

@JsonIgnoreProperties(ignoreUnknown=true)
public class Wrapper {
     private MyPojo myPojo;
}

MyPojo myPojo = restTemplate.getForObject("url", Wrapper.class).getMyPojo();