我有一个Springboot Web服务应用程序,并且我正在使用Jackson标记用于XML和JSON。对于JSON,我能够识别重复项,但不能识别XML。 要使用以下配置检测JSON中的重复项
spring:
jackson:
deserialization:
fail-on-unknown-properties: true
parser:
STRICT_DUPLICATE_DETECTION: true
DeserializationFeature.FAIL_ON_READING_DUP_TREE_KEY或JsonParser.Feature.STRICT_DUPLICATE_DETECTION它们都不适用于XML输入
配置为检测重复项如下
@Configuration
public class AppConfig {
@Bean(name = "xmlmapper")
public ObjectMapper xmlObjectMapper() {
ObjectMapper mapper = new XmlMapper();
mapper.setSerializationInclusion(Include.NON_NULL);
mapper.enable(DeserializationFeature.FAIL_ON_READING_DUP_TREE_KEY);
mapper.enable(JsonParser.Feature.STRICT_DUPLICATE_DETECTION);
return mapper;
}
}
现在,当我们为XML提供重复元素时,默认情况下不会引发错误,而是选择第二个标记值
<Test>
<A>v1</A>
<A>v2</A>
</Test>
下面是相应的课程
@JacksonXmlRootElement(localName="Test")
public class Test {
@JsonProperty("A")
@JacksonXmlProperty(localName="A")
protected String a;
}
预期的结果是,当以XML传递重复的标签时,它应该引发错误,但不会。我不想使用不区分大小写,因为这会引起另一个问题。