2014-11-06 99 views
2

我有一个小问题,有关从java spring使用Resttemplate的.csv文件。 它看起来莫名其妙地喜欢:如何使用Java Spring Resttample处理.csv文件?

URL url = URL url = new URL("http://data.wien.gv.at/daten/geo?service=WFS&version=1.0.0&request=GetFeature&typeName=ogdwien:GEONAMENSVERZOGD&outputFormat=CSV"); 
RestTemplate restTemplate = new RestTemplate(); 

晚于我希望由restTemplate使用getForObject()方法,但我down't知道如何着手,因为我无法找到匹配paramteres anywehere在互联网上。

谢谢你的帮助!

回答

0

首先,您需要一个CSV解析库,例如SuperCSV或OpenCSV。

第二,你可以添加一个HttpMessageConverter到Spring来将csv输入转换为java对象。 http://docs.spring.io/spring/docs/current/javadoc-api/org/springframework/http/converter/HttpMessageConverter.html

设置完成后,您将能够获取ForObject并直接获取java对象。

+0

感谢您的回答,我已经在使用CSV解析库。我的问题是,我不知道我应该输入什么值使用方法.getForObject(url,???);以及如何继续将其导入到csvParser中。这是我的问题。 – Shachty 2014-11-06 10:30:14

+0

第二个参数是您希望将内容转换为的Java类型。我想你有一个可以从CSV行构建的bean类,那么第二个参数可以是该类型的数组.class即MyCsvRow []。class 但是,要做到这一点,你需要指示Spring如何转换它使用我提到的HttpMessageConverter。 或者您可以简单地获取内容为字符串: ResponseEntity response = restTemplate.getForObject(url,String.class); ,然后将它传递给您的CSV解析库。 – coyote 2014-11-06 10:38:16

+0

using String response = restTemplate.getForObject(url,String.class);给我一个错误,但不知道为什么。想将响应字符串传递给CSV解析器,但没有运气。 – Shachty 2014-11-06 12:01:40