java - Spring REST 从以下位置获取对象列表

标签 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());
        };

    }

但是,我似乎无法让它从 body 中获取所有单独的产品。 我最好使用此处获取的主体并将它们映射到单独的对象,还是有直接的方法从restTemplate 执行此操作?

如有任何帮助,我们将不胜感激。

最佳答案

据我了解,您正在寻找一种将 xml 字符串反序列化为 Java 对象的方法。您有很多不同的选择来做到这一点

  1. 使用 JAXB(我个人最喜欢的,因为维护成本低)、XStream 或 JibX 库,让它为您处理转换。 为此,您可能需要向您的产品添加某些注释 类(对于 JAXB,您可以自动生成该类,如果您有 访问 XSD)。
  2. 走痛苦的路线 - 使用任何解析器(取决于您的使用情况) 案例)DOM、SAX 或 StaX 解析器并在您的 拥有。

关于java - Spring REST 从以下位置获取对象列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39857242/

相关文章:

java - 在 springs 中使用 JMS 的客户端可以从不使用 springs 实现 JMS 的服务器接收消息吗?

java - 在android应用程序中实现时间延迟

java - Jsp默认日期格式

java - 解析 xml 找不到架构文件

java - 使用java和apache POI读取Excel中的数据

java - Spring MVC 使用 GET 请求提交并绑定(bind)对象

java - Struts 2 和 Spring 如何处理 struts 创建的对象

javascript - backbone.js - model.save() 生成错误的 PUT url 路径

rest - 是否可以在没有 IIS 的情况下安装和使用 OpenRasta?如果是这样,怎么办?

rest - 带有 Jersey HTTPS : Handshake failure 的 Weblogic REST 客户端