标签: jsonschema

更正不同类型的项目数组的JSON模式

我有一个无序的JSON项目数组.根据规范http://tools.ietf.org/html/draft-zyp-json-schema-03#section-5.5,下面的json模式将仅验证数组中的对象是否显示为IN THAT ORDER.我不想指定一个订单,只需验证数组中的对象,无论对象的顺序或数量如何.从规范我似乎无法理解这是如何做到的.

"transactions" : {
    "type" : "array",
    "items" : [
        {
            "type" : "object",
            "properties" : {
                "type" : {
                    "type" : "string",
                    "enum" : ["BUILD", "REASSIGN"]
                }
            }
        },
        {
            "type" : "object",
            "properties" : {
                "type" : {
                    "type" : "string",
                    "enum" : ["BREAK"]
                }
            }
        }
    ]
}
Run Code Online (Sandbox Code Playgroud)

validation json jsonschema

25
推荐指数
4
解决办法
4万
查看次数

了解JSON Schema草案版本4中的"additionalProperties"关键字

链接到规范:http://json-schema.org/latest/json-schema-validation.html#anchor64

第5.4.4.2节规定:

针对这三个关键字成功验证对象实例取决于"additionalProperties"的值:如果其值为布尔值true或模式,则验证成功; ...

第5.4.4.3节规定:

如果不存在"additionalProperties",则可以认为它具有空模式作为值.

好的,所以如果"additionalProperties"不存在,它将被视为存在空模式.如果它是一个模式(任何类型),那么无论其他任何考虑因素,该对象都会成功验证.

但是这与第5.4.4.5节"示例"中的断言相矛盾,即给定实例无法针对给定的模式进行验证(它没有为"additionalProperties"指定任何内容).

有人可以解释我在哪里以及以何种方式误解了规范?

validation json specifications jsonschema

25
推荐指数
1
解决办法
2万
查看次数

在JSON模式中使用RegEx

尝试编写一个使用RegEx来验证项目值的JSON模式.

有一个名为progBinaryName的项目,其值应该与此RegEx字符串相同"^[A-Za-z0-9 -_]+_Prog\\.(exe|EXE)$".

找不到任何实际解释在JSON模式中使用RegEx的教程或示例.

任何帮助/信息将非常感谢!

感谢:D

JSON SCHEMA

{
    "name": "string",
    "properties": {
        "progName": {
            "type": "string",
            "description": "Program Name",
            "required": true
        },
        "ID": {
            "type": "string",
            "description": "Identifier",
            "required": true
        },
        "progVer": {
            "type": "string",
            "description": "Version number",
            "required": true
        },
        "progBinaryName": {
            "type": "string",
            "description": "Actual name of binary",
            "patternProperties": {
                "progBinaryName": "^[A-Za-z0-9 -_]+_Prog\\.(exe|EXE)$"
            },
            "required": true
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

错误:

警告!更好地检查你的JSON.

实例不是必需的类型 - http://json-schema.org/draft-03/hyper-schema#


架构是有效的JSON,但不是有效的架构.


验证结果:失败

[ {
    "level" : "warning",
    "schema" : …
Run Code Online (Sandbox Code Playgroud)

regex schema json jsonschema

25
推荐指数
2
解决办法
4万
查看次数

如何(如果可能的话)在JSON模式中定义一个数组项属性应该是唯一的?

鉴于以下JSON模式是有可能表明,"名称"属性应是唯一的(即不应该有两个项目具有相同的"名"的"元素"阵列英寸

{
  "root": {
    "type": "object",
    "properties": {
      "elements": {
        "type": "array",
        "minItems": 1,
        "items": {
          "type": "object",
          "properties": {
            "name": {
              "type": "string",
              "title": "Element Name",
              "minLength": 3,
            },
            "url": {
              "type": "string",
              "title": "Some URL"
            }
          }
        }
      }
    }
  }
}
Run Code Online (Sandbox Code Playgroud)

我尝试使用uniqueItems关键字,但它似乎是为简单的值列表而设计的.

json jsonschema

25
推荐指数
3
解决办法
1万
查看次数

PostgreSQL中的JSON Schema验证?

我在PostgreSQL中找不到有关JSON模式验证的任何信息,有没有办法在PostgreSQL JSON数据类型上实现JSON模式验证?

postgresql json jsonschema postgresql-json

24
推荐指数
2
解决办法
7782
查看次数

如何将属性指定为null或引用?

我有一个json文档,其中一个部分可以是null或子对象,如下所示:

[{
    "owner":null    
},
{
    "owner":{
        "id":1
    }   
}]
Run Code Online (Sandbox Code Playgroud)

问题是,是否可以使用ref在json模式草案v4中对此进行建模?

我想要的是这样的

{
    "type":"object",
    "properties":{
        "owner":{
            "type":["null", "object"],
            "$ref":"#/definitions/id"
        }
    },
    "definitions":{
        "id":{
            "type":"object",
            "properties":{
                "id":{
                    "type":"number"
                }
            }
        } 
    }
}
Run Code Online (Sandbox Code Playgroud)

jsonschema

23
推荐指数
1
解决办法
1万
查看次数

如何为对象数组编写JSON模式?

我的JSON字符串格式为:

{
    "count":3,
    "data":[
        {
            "a":{"ax":1}
        },
        {
            "b":{"bx":2}
        },
        {
            "c":{"cx":4}
        }
    ]
}
Run Code Online (Sandbox Code Playgroud)

data数组包含许多abc.而且没有其他种类的对象.

如果count==0,data应该是一个空数组[].

我正在使用https://github.com/hoxworth/json-schema来验证Ruby中的这些JSON对象.

require 'rubygems'
require 'json-schema'

p JSON::Validator.fully_validate('schema.json',"test.json")
Run Code Online (Sandbox Code Playgroud)

schema.json方法是:

{
  "type":"object",
  "$schema": "http://json-schema.org/draft-03/schema",
  "required":true,
  "properties":{
     "count": { "type":"number", "id": "count", "required":true },
     "data": { "type":"array", "id": "data", "required":true,
       "items":[
           { "type":"object", "required":false, "properties":{ "a": { "type":"object", "id": "a", "required":true, "properties":{ "ax": { "type":"number", "id": "ax", "required":true …
Run Code Online (Sandbox Code Playgroud)

ruby json jsonschema

22
推荐指数
1
解决办法
3万
查看次数

JSON Schema - 如何指定布尔值必须为false?

假设我有一个布尔类型,但我不只是想指定它将是布尔值,我想指定它将具有值false.要指定它将是布尔值,我执行以下操作:

{
    "properties": {
        "some_flag": {
            "type": "boolean"
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

我曾尝试将上面的"boolean"替换为"false"和false(不带引号),但都不起作用.

jsonschema

22
推荐指数
2
解决办法
1万
查看次数

如何为Name/Value结构创建JSON Schema?

我的问题是我正在将地图内容序列化为JSON.

在输出(JSON)中,我有跟随键/名称语法规则的对象.

密钥是从map键创建的,名称来自值.

模型示例:

  class Storage {
       Map<String,String> values = new HashMap<>();

      {
         map.put("key1","key1");
         map.put("key2","key2");
         map.put("key3","key3");
      }

    }
Run Code Online (Sandbox Code Playgroud)

JSON示例对象:

{
  key1=value1,
  key2=value2,
  key3=value3
}
Run Code Online (Sandbox Code Playgroud)

JSON架构:

{
  "name": "storage",
  "description": "Store of key values",
  "properties": {
    // How can we describe the properties if we do not know the name ?
   }
}
Run Code Online (Sandbox Code Playgroud)

问题是,我不知道它的价值是什么,但我知道它们会是一些.

你能帮我提一下架构的完整定义吗?


免责声明:

我知道这也可以序列化为

 {
    values: [
       {key="key1", value="value1"},
       {key="key2", value="value2"},
       {key="key3", value="value3"}
    ]
 }
Run Code Online (Sandbox Code Playgroud)

但是不希望在JSON中有数组.

javascript java json jsonschema

22
推荐指数
1
解决办法
1万
查看次数

从某些Java对象生成Avro架构

Apache Avro提供紧凑,快速的二进制数据格式,丰富的数据结构用于序列化.但是,它需要用户为需要序列化的对象定义模式(在JSON中).

在某些情况下,这是不可能的(例如:该Java对象的类具有一些成员,其类型是外部库中的外部Java类).因此,我想知道有一个工具可以从对象的.class文件中获取信息,并为该对象生成Avro架构(如Gson使用对象的.class信息将某些对象转换为JSON字符串).

java serialization jsonschema avro

22
推荐指数
3
解决办法
3万
查看次数