【问题标题】:JSON schema validation using java - ref使用 java 的 JSON 模式验证 - ref
【发布时间】:2012-09-22 19:26:51
【问题描述】:

我正在尝试使用 (https://github.com/fge/json-schema-validator) 模式验证器验证我的 JSON。

  1. 您建议使用杰克逊模式生成来生成 JSON 模式还是有更好的方法?

  2. 我有一个名为 (Location) 的对象,其中包含对象列表 (BaseObject)。 我为这样的位置创建了一个模式,其中包含 BaseObject 的 $ref。但验证失败并显示错误消息 - ["": domain: validation;关键字:属性;消息:未找到所需的属性;缺失:["id","re​​fName"];必需:["id","re​​fName"]]

我使用 refs 的方式有错误吗?

Location.json - 架构

{
   "type":"object",
   "properties":{
      "locationType":{
         "type":"string"
      },
      "mapsRefs":{
          "$ref": "file://localhost/c:/baseobject.json" 
         }
      }
   }
}

baseobject.json - 架构

{
   "type":"object",
   "properties":{
      "refName":{
         "type":"string",
          "required":true
      },
      "id":{
         "type":"integer",
          "required":true
      },
      "refs":{
         "type":"array",
          "required":false,
         "items":{
            "type":"string"
         }
      }
   }

}

【问题讨论】:

  • 在 Location.json 中是一个太多的右括号

标签: java json jsonschema


【解决方案1】:

回答您的第一个问题,根据我的经验,Jackson 是在 java 上处理 JSON 的最易于使用和记录的 API。

对于第二个问题,您根据需要定义了“id”和“refName”,您要么使用错误的架构进行验证,要么没有传递所需的属性。

这看起来很像 github 上的这个已关闭问题: https://github.com/fge/json-schema-validator/issues/22

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-01-30
    • 2021-10-16
    • 2021-09-22
    • 1970-01-01
    • 2020-09-06
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多