当前位置: 首页 > 知识库问答 >
问题:

如何自定义SpringWebFlux WebClient xml rss JAXB反序列化?

庄弘业
2023-03-14

看起来像Spring webflow客户端的json配置示例:

   ExchangeStrategies strategies = ExchangeStrategies
        .builder()
        .codecs(clientDefaultCodecsConfigurer -> {

        //how to do the same but xml?
        clientDefaultCodecsConfigurer.defaultCodecs().jackson2JsonEncoder(new Jackson2JsonEncoder(new ObjectMapper(), MediaType.APPLICATION_JSON));
            clientDefaultCodecsConfigurer.defaultCodecs().jackson2JsonDecoder(new Jackson2JsonDecoder(new ObjectMapper(), MediaType.APPLICATION_JSON));

        }).build();

WebClient webClient = WebClient.builder().exchangeStrategies(strategies).build();

与这个问题相同,但适用于jaxb xml序列化。有JAXB和xml的解码器实现吗?是否可以使用HttpMessageConverter作为webclient的解码器,以使Spring boot控制器和客户端实现一致?

共有1个答案

高博涉
2023-03-14

我猜是来自< code > org . spring framework . http . codec . XML 包的< code>Jaxb2XmlDecoder和< code>Jaxb2XmlEncoder类:

ExchangeStrategies.builder()
        .codecs(configurer -> {
            configurer.defaultCodecs().jaxb2Decoder(new Jaxb2XmlDecoder());
            configurer.defaultCodecs().jaxb2Encoder(new Jaxb2XmlEncoder());
        })
        .build();
 类似资料:
  • 问题内容: 我正在使用spring-webflux WebClient (内部版本20170502.221452-172)访问Web应用程序,该Web应用程序生成Entry对象流(application / stream + json),如下所示: 尽管Entry对象的反序列化对于使用标准通用类型(包括Java时间(JSR-310)数据类型,如java.time.Instant)的POJO都可以正

  • 我正在使用spring-webflux WebClient(build 20170502.221452-172)访问一个Web应用程序,该应用程序生成一个条目对象流(application/stream+JSON),如下所示: 虽然条目对象的反序列化对于使用标准通用类型(包括Java.time.instant等Java time(JSR-310)数据类型)的POJO很好,但我想知道,为了将任何自定

  • 问题内容: 我有一堂课 我想将下面的JSON数据反序列化到上面的类/对象中 我的想法是在JSON中是一个对象,但我只想获取(在JSON中)在反序列化期间将像在类中那样传递。 如何使用Json.NET实现该目标? 我相信我可以使用CustomJsonConverter完成它。但是我很困惑。docs中的示例仅用于,但不适用。 问题答案: 我只是使用上面在问题中提到的方法解决了我的问题。在我完整的代码下

  • 问题内容: 确定,所以我编辑了问题,因为它不够清楚。 编辑2 :更新了JSON文件。 我在Android应用程序中使用GSON,我需要解析来自服务器的JSON文件,这些文件有点太复杂了。我不想让我的对象结构太沉重,所以我想简化内容: 所以我的对象的结构将不是JSON文件的结构。 例如,如果在JSON中,我有以下内容: 我不想保留我当前的对象结构,即一个对象,其中包含一个和一个“总计”。但是我只想将

  • 我有一个JestClient(elasticsearch)响应,我试图将其反序列化为一个对象。该对象包含两个DateTime字段,而在响应中,它们是字符串,因此我得到: 所以,我创建了一个自定义反序列化器来解决这个问题…然而,无论我做什么,我总是得到同样的错误。不知何故它没有注册使用它? 最后,我试图解析JestClient响应的代码: 无论我尝试什么,我总是得到上面的错误,我甚至不确定在这一点上

  • 我使用NewtonSoft.json来反序列化这个json