标签: jsonschema

json架构日期时间未正确检查

我有一个JSON和一个JSON模式

JSON:

{
"aaa": "4000-02-01 00:00:00"
}
Run Code Online (Sandbox Code Playgroud)

JSON-模式:

{
    "$schema": "http://json-schema.org/draft-04/schema",
    "type": "object",
    "properties": {

        "aaa": {
            "type": "string",
            "format": "date-time"
        }


    }, "required": ["aaa"]
}
Run Code Online (Sandbox Code Playgroud)

JSON由JSON模式验证.但是,如果我将字段更改aaa为"bla",则架构不会再注意到它不再是日期时间.

我错过了架构中的任何内容吗?

datetime json jsonschema

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

关于使用$ ref的JSON Schema

我知道$ ref需要一个URI来使用json架构,但$ ref:"#"指向哪里?它只是意味着使用此块级别的当前架构吗?或者是否意味着使用根级别ID中定义的根级别架构?谢谢

编辑:所以,如果我有:

"items": {
        "anyOf": [
            { "$ref": "#" },
            { "$ref": "#/definitions/schemaArray" }
        ],
        "default": {}
    }
Run Code Online (Sandbox Code Playgroud)

因为它缺少id字段,所以它将首先尝试使用根模式验证实例项,然后如果失败则尝试使用定义模式中定义的schemaArray模式对其进行验证,对吗?

所以,如果我将其更改为:

 "items": {
            "id" : "#/items",
            "anyOf": [
                { "$ref": "#" },
                { "$ref": "#/definitions/schemaArray" }
            ],
            "default": {}
        }
Run Code Online (Sandbox Code Playgroud)

然后anyOf数组中的第一个子模式将指向items模式本身?

编辑#2:好的,如果我有:

 "items": {
        "id" : "itemSchema",
        "anyOf": [
            { "$ref": "#" },
            { "$ref": "#/definitions/schemaArray" }
        ],
        "default": {}
    }
Run Code Online (Sandbox Code Playgroud)

"stringArray": {
        "type": "array",
        "items": { "$ref" : "itemSchema" },
        "minItems": 1,
        "uniqueItems": true
    }
Run Code Online (Sandbox Code Playgroud)

"stringArray"的"items"字段是否会针对上述"itemsSchema"进行验证?

'anyOf'中的第二个$ …

json jsonschema

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

具有未知属性名称的JSON模式

我想在对象数组中使用具有未知属性名称的JSON模式.一个很好的例子是网页的元数据:

      "meta": {
        "type": "array",
        "items": {
          "type": "object",
          "properties": {
            "unknown-attribute-1": {
              "type": "string"
            },
            "unknown-attribute-2": {
              "type": "string"
            },
            ...
          }
        }
      }
Run Code Online (Sandbox Code Playgroud)

请问任何想法,或以其他方式达到相同的目的?

json jsonschema

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

您如何为任意键设计JSON Schema?

我有以下JSON输出数据:

{
   "label_name_0" : 0,
   "label_name_5" : 3,
   .
   .
   .
   "label_name_XXX" : 4
}
Run Code Online (Sandbox Code Playgroud)

输出很简单:与整数值关联的键[1]名称.如果密钥名称没有改变,我可以轻松地提出类似于这样的JSON Schema:

    {
        "type": "array"
        "title": "Data output",
        "items" :{ 
            "properties": {
                "label_name": {
                   "type": "integer",
                   "default": 0,
                   "readonly": True,
            }
        }
    },
Run Code Online (Sandbox Code Playgroud)

由于密钥名称本身未知且不断变化,因此我必须为其设计模式.我唯一知道的是密钥是string不超过100个字符.如何为lable_name_xxx不断更改的键定义JSON模式.

[1]不确定我是否使用了正确的术语

json jsonschema

29
推荐指数
3
解决办法
8001
查看次数

JSON Schema - 需要所有属性

requiredJSON Schema中的字段

JSON模式的特点properties,requiredadditionalProperties领域.例如,

{
    "type": "object",
    "properties": {
        "elephant": {"type": "string"},
        "giraffe": {"type": "string"},
        "polarBear": {"type": "string"}
    },
    "required": [
        "elephant",
        "giraffe",
        "polarBear"
    ],
    "additionalProperties": false
}
Run Code Online (Sandbox Code Playgroud)

将验证JSON对象,如:

{
    "elephant": "Johnny",
    "giraffe": "Jimmy",
    "polarBear": "George"
}
Run Code Online (Sandbox Code Playgroud)

但如果属性列表不完全, 则会失败elephant, giraffe, polarBear.

问题

我经常将列表复制粘贴properties到列表中required,并且由于拼写错误和其他愚蠢错误而导致列表不匹配时会遇到恼人的错误.

是否有更短的方法来表示所有属性都是必需的,而没有明确命名它们?

jsonschema

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

JSON Schema与XML Schema及其未来进行了比较

我一直在寻找JSON模式标准及其相应的php实现.期待一些开源,我很惊讶,只找到一个PHP实现.我当时正在使用这种技术(JSON)和模式库来解析我传入的浏览器请求.

这种自然的解析/验证活动在XML中看起来很自然,让我想知道为什么JSON不是这种情况.

我最终遇到了疑问.我应该继续我的JSON结构数据交换还是切换到XML? 与XML相比,我首先选择了JSON,因为它的简单性和冗长的语法,但如果我必须重新开发世界上所有现有的标准,这些参数会变得更轻松.我还选择了JSON,希望限制我的Web服务器和移动应用程序之间的通信大小.使用彗星应用程序,XMPP似乎被谷歌,Facebook这样的大品牌实施和使用,用于实时聊天聊天文本或基于视频的消息.

所以实际的问题是:

  1. 对于那些想知道其流量发生了什么的可怜的Web服务器开发人员来说,JSON是JSON,并且专注于过度简单(不要误会,在这里,我包括我自己)?
  2. 针对JSON模式的IETF草案是否是一项严肃的工作,因为服务器端(PHP)只存在很少的实现?
  3. 我错过了什么,或者,最好的通信模式是将xml中的数据发送到服务器并期望json响应(javascript中存在许多json模式实现)?
  4. 或者我只是面对实际的证据,开发人员社区没有很好地解决这个问题,因为使用JSON的Web开发人员不会深入测试他们的传入请求数据?

请帮助我理解,我在这里缺少一些经验?

xml json xmpp jsonschema

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

从C#类生成JSON模式

有没有办法以编程方式从C#类生成JSON模式?

我们可以使用http://www.jsonschema.net/手动完成的事情

c# json jsonschema

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

JSON模式验证

是否有一个稳定的库可以根据模式验证JSON ?

json-schema.org提供了一个实现列表.值得注意的是C和C++缺失.

有没有理由我不能轻易找到C++ JSON模式验证器?
没有其他人想要快速验证传入的JSON文件吗?

c c++ json jsonschema

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

将JSON模式转换为python类

是否有用于将JSON模式转换为python类定义的python库,类似于jsonschema2pojo - https://github.com/joelittlejohn/jsonschema2pojo - for Java?

python json jsonschema

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

如何在Python中验证JSON模式架构?

我以编程方式生成JSON-Schema架构.我希望确保架构有效.是否有我可以验证我的架构的架构?

请注意我在该句和标题中使用了两次模式.我不想根据我的架构验证数据,我想验证我的架构.

python jsonschema

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

标签 统计

jsonschema ×10

json ×8

python ×2

c ×1

c# ×1

c++ ×1

datetime ×1

xml ×1

xmpp ×1