使用java的jSON模式验证 - 参考

时间:2012-10-01 22:14:57

标签: java json jsonschema

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

  1. 您是否建议使用jackson架构生成生成JSON架构,还是有更好的方法?

  2. 我有一个名为(Location)的对象,它有一个对象列表(BaseObject)。 我使用$ ref到BaseObject为这样的位置创建了一个模式。但验证失败并显示错误消息 - [“”:domain:validation; keyword:properties;消息:未找到所需的属性;缺少:[“id”,“refName”];必需:[“id”,“refName”]]

  3. 我使用裁判的方式有错吗?

    Location.json - schema

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

    baseobject.json - schema

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

1 个答案:

答案 0 :(得分:0)

回答你的第一个问题,根据我的经验,杰克逊是最容易使用和记录的API来处理java上的JSON。

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

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