【问题标题】:Is there a way to validate json attributes based on predefined values in java?有没有办法根据java中的预定义值来验证json属性?
【发布时间】:2018-02-13 05:05:55
【问题描述】:

有没有办法根据java中的预定义值来验证json属性?

例如:

{
    "operation": "ONE" 
}

操作的唯一允许值是一、二、三。 所以在 JSON 层,我们要验证这个操作属性,如果请求有上述任何一个以外的值,我们要拒绝它。 是否有任何 JSON 注释来实现这一点?

使用的库:Fasterxml Jackson

提前致谢。

【问题讨论】:

    标签: java json jackson fasterxml


    【解决方案1】:

    可能有两种可能的方法:首先,您可以使用@JsonProperty,但为此您需要添加@JsonCreator 或自定义构造函数。

    否则您可以简单地使用 Jackson 模式验证。例如,创建一个 schema.json 并根据架构验证每个传入的输入:

    {
        "operation": {
                    "type":"string",
                    "required":true,
                    "enum":["ONE","TWO","THREE"]
                }
    }
    

    这比处理 Jackson 引发的异常(即 JsonMappingException 和 UnrecognizedPropertyException)要好。

    您可以在 http://wilddiary.com/validate-json-against-schema-in-java/ 上查找有关架构验证的更多信息

    【讨论】:

      猜你喜欢
      • 2015-10-23
      • 2019-09-24
      • 2010-11-12
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-06-10
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多