2013-06-11 69 views
1

当我传递一个字符串对象类型到静止服务调用字符串“响应”中包含其余的URLRestTemplate返回类型

RestTemplate restTemplate = new RestTemplate(); 
String response = restTemplate.getForObject("xxxxx", String.class, new Object[]{}); 

的JSON表示如果我上面的代码改变为:

RestTemplate restTemplate = new RestTemplate(); 
MyObject response = restTemplate.getForObject("xxxxx", MyObject.class, new Object[]{}); 

响应的类型现在是MyObject。

这里发生了什么,当指定字符串类型时RestTemplate转换为Json,并在指定对象返回类型时转换为指定的对象?

回答

3

是的。基本上,RestTemplate会调用第一个参数中指定的URL。该调用以json的形式返回响应。然后它使用MyObject.classHttpMessageConverter将json转换为对象。

它使用注册的HttpMessageConverters进行转换,因此您的应用程序必须在应用程序中注册了MappingJacksonHttpMessageConverter

+0

我无法在我的应用程序中找到任何对MappingJacksonHttpMessageConverter的引用,这是默认的转换类型吗? –

+1

yes ..'MappingJacksonHttpConverter'是默认添加的。在springource上阅读[this](http://blog.springsource.org/2009/03/27/rest-in-spring-3-resttemplate/)博客文章 –