删除 xml 的响应正文中的 <
Remove < in Response body of xml
对于 XML 中的一个值,我的回复总是显示 <
而不是 <
。
下面是我的 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;
}
不将 <
转换为 <
的原因是因为值:
@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);
任何人都可以告诉我做错了什么以及如何将 <
转换为 <
这是我目前的结果:
<test>
<result val="application/xml"><history>abc</history></result>
<name>myname</name>
<age>myage</age>
</test>
您可以在字段中添加 @JsonRawValue
注释,在序列化时将其视为原始 XML 值。
对于 XML 中的一个值,我的回复总是显示 <
而不是 <
。
下面是我的 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;
}
不将 <
转换为 <
的原因是因为值:
@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);
任何人都可以告诉我做错了什么以及如何将 <
转换为 <
这是我目前的结果:
<test>
<result val="application/xml"><history>abc</history></result>
<name>myname</name>
<age>myage</age>
</test>
您可以在字段中添加 @JsonRawValue
注释,在序列化时将其视为原始 XML 值。