首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >json模式中的空对象验证

json模式中的空对象验证
EN

Stack Overflow用户
提问于 2020-05-25 18:57:46
回答 1查看 1.3K关注 0票数 0

我试图使用json模式验证JSON。在下面的json中,“工业”是“对象”类型,它是“不需要”的。然而,我需要了解是否在json中提供了“行业”。

这里是我的json模式

代码语言:javascript
复制
{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "type": "object",
  "additionalProperties": false,
  "properties": {
    "id": {
      "enum": ["Russia", "Canada"]
    },
    "name": {
      "type": "string"
    },
    "industry": {
      "$ref": "#/definitions/industry"
    }
  },
 "required": [
    "id",
    "name"
    ],
  "definitions": {
      "industry": {
      "type": "object",
      "additionalProperties": false,
      "properties": {
        "type": {
          "type": "string"
        },
        "codes": {
          "type": "array",
          "items": {
            "type": "integer"
          }
        }
      },
      "required": [
        "codes",
        "type"
      ],
      "title": "industry"
    }
  }
}    

这里是我的json

代码语言:javascript
复制
{
  "id": "Russia",
  "price": 10.50
}    

我想知道在给定的json中是否存在"industry“对象,如果在json中存在"industry”对象。我需要做点别的。目前,如果我像上面一样发送json,并像下面的代码一样尝试下面的if语句。即使json中不存在“工业”对象,它也是正确的。我相信它是在考虑这样的“产业”目标,而不是空的。

代码语言:javascript
复制
    "if":{
      "properties": {"industry" : {  "type": "object" }}
    },    

任何验证“工业”对象是否存在于json对象中的解决方案都会有帮助。谢谢。

EN

回答 1

Stack Overflow用户

发布于 2020-05-25 19:54:42

如果属性不存在,包含"properties“的架构将计算为true。你想把什么作为你的“如果”的条件是“必需的”:

"if": {"required":["industry"]}, "then": { ... }

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/62008928

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档