Spring REST从中获取对象列表

时间:2016-10-04 16:17:45

标签: java spring rest client

我尝试使用Spring Boot实现客户端,它将从站点获取所有产品并将其存储在数据库中。存储部分需要处理,但我在获取所有产品列表时遇到问题。 在使用Postman进行测试时,我可以得到一个像这样的身体的回复:

<Response>
    <Products>
        <Product Id="221">
            <Name>Screwdriver<Name>
            <Price>5,99</Price>
            <Currency>USD<Currency>
        </Product>
        ...
   </Products>
</Response>

我有一个包含所有字段,getter和setter的Products类。这是什么工作并输出原始体xml:

@Bean
    public CommandLineRunner run(RestTemplate restTemplate) throws Exception {

        return args -> {
            ResponseEntity<String> response = restTemplate.getForEntity(resourceUrl, String.class);
            log.info(response.toString());
        };

    }

然而,我似乎无法从身体中获取所有单个产品。 我最好使用这里提取的物体并将它们映射到单个物体,或者是否有直接的方法从restTemplate执行此操作?

任何帮助都将不胜感激。

1 个答案:

答案 0 :(得分:1)

据我所知,您正在寻找一种将xml字符串反序列化为Java Objects的方法。你有很多不同的选择

  1. 使用JAXB(我个人最喜欢的,因为维护成本低),XStream 或JibX库,让你负责转换。 为此,您可能需要向产品添加某些注释 class(如果是JAXB,可以自动生成它,如果有的话) 访问XSD)。
  2. 走痛苦路线 - 使用任何解析器(取决于您的使用情况) case)DOM,SAX或StaX解析器并在你的上创建产品实例 自己的。