如何避免Json请求有效载荷中的重复字段?我在REST中使用Apache Camel

问题描述 投票:0回答:1

我想通过识别请求正文中的重复字段来解析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)`
rest apache-camel json-deserialization jsonparser spring-camel
1个回答
0
投票

这可能来自以下事实:Camel使用XStream作为默认JSON库(请参阅here)。您是否已经尝试过强制使用Jackson库?

© www.soinside.com 2019 - 2024. All rights reserved.