2014-04-04 26 views
1

如何使用Spring RestTemplate將GeoJson獲取到我的控制器中?我需要它將GeoJson添加到我的控制器中,以便將其傳遞到我將在地圖上繪製的視圖。Spring RestTemplete獲取GeoJson

我用字符串進行了測試,並獲得對象,像這樣:

String featureCollection = restTemplate.getForObject(geoJsonUrl, String.class); 

它適用於現在,但這樣做有什麼更好的辦法?

回答

1

我不知道RestTemplate消息轉換器,直接支持GeoJson。但是,您可以嘗試使用MappingJackson2HttpMessageConverter來消耗資源作爲傑克遜JsonNode。然後遍歷json結構會更容易。

JsonNode featureCollection = restTemplate.getForObject(geoJsonUrl, JsonNode.class); 

默認情況下MappingJackson2HttpMessageConverter只支持application/json媒體類型。如果服務器設置不同的Content-type,那麼您可能需要指定。例如,以下設置支持的媒體類型爲text/javascript

MappingJackson2HttpMessageConverter jackson = new MappingJackson2HttpMessageConverter(); 
jackson.setSupportedMediaTypes(Collections.singletonList(new MediaType("text", "javascript"))); 
List<HttpMessageConverter<?>> converters = new ArrayList<HttpMessageConverter<?>>(); 
converters.add(jackson); 
RestTemplate restTemplate = new RestTemplate(converters);