删除 xml 的响应正文中的 <

Remove &lt; in Response body of xml

对于 XML 中的一个值,我的回复总是显示 &lt; 而不是 <

下面是我的 XML MyResponseEnity:

@JacksonXmlRootElement(localName = "test")
public class MyResponseEnity implements Serializable {

    @JacksonXmlProperty
    private Result result;
    @JacksonXmlProperty
    private String name;
    @JacksonXmlProperty
    private String age;

}

public class Result {
    @JacksonXmlProperty(isAttribute = true)
    private final String val = MediaType.APPLICATION_XML();
    @JacksonXmlText
    private String value;
}

不将 &lt; 转换为 < 的原因是因为值:

@JacksonXmlText
private String value;

是一个实际的 xml 但以字符串的形式,类似于 <history>abc</history>.

我尝试在配置中添加 httpmesssgaeconverters(我正在使用 spring 启动)

 @Override
    public void configureMessageConverters(List<HttpMessageConverter<?>> converters) {
        Jackson2ObjectMapperBuilder builder = Jackson2ObjectMapperBuilder.xml();
        builder.indentOutput(true);
        converters.add(new MappingJackson2XmlHttpMessageConverter(builder.build()));
    }

控制器:

return new ResponseEntity<MyResponseEnity>(myResponseEnity,
        HttpStatus.OK);

任何人都可以告诉我做错了什么以及如何将 &lt; 转换为 <

这是我目前的结果:

<test>
<result val="application/xml">&lt;history>abc&lt;/history></result>
<name>myname</name>
<age>myage</age>
</test>

您可以在字段中添加 @JsonRawValue 注释,在序列化时将其视为原始 XML 值。