我想通过识别请求正文中的重复字段来解析json请求。例如。假设我有以下要求。
`"employee": {
"name": "abc",
"name": "xyz",
"id": "6754",
"title": "supervisor",
}`
上面的雇员请求具有重复的name字段。理想情况下,在json验证/解析期间,第二个重复字段优先于first,但是我想使这种json请求无效。我如何在Camel REST中实现这一目标。以下是我尝试过的方法,但是没有任何效果。在myorg.apache.camel.builder.RouteBuilder中,我尝试将DataFormatProperty配置为使用DeserializationFeature FAIL_ON_READING_DUP_TREE_KEY,但它没有失败。如何使无效的具有重复字段的json请求的请求失败??
`@Override
public void configure() throws Exception {
restConfiguration().bindingMode(RestBindingMode.json).component("servlet")
.jsonDataFormat(JsonParser.Feature.STRICT_DUPLICATE_DETECTION.name())
.dataFormatProperty("prettyPrint", "true")
.dataFormatProperty("json.in.enableFeatures",
"FAIL_ON_NUMBERS_FOR_ENUMS,USE_BIG_DECIMAL_FOR_FLOATS,FAIL_ON_READING_DUP_TREE_KEY"
+ ",FAIL_ON_UNKNOWN_PROPERTIES,ADJUST_DATES_TO_CONTEXT_TIME_ZONE,"
+ JsonParser.Feature.STRICT_DUPLICATE_DETECTION.name())
.dataFormatProperty("json.in.disableFeatures", "FAIL_ON_EMPTY_BEANS").enableCORS(true)`
这可能来自以下事实:Camel使用XStream作为默认JSON库(请参阅here)。您是否已经尝试过强制使用Jackson库?