JSON Schema:如何在json中正确使用oneOf引用?

时间:2017-10-17 13:03:43

标签: json enums jsonschema

使用以下网站:http://jeremydorn.com/json-editor/并粘贴架构部分中的以下代码:

 {
  "type": "object",
  "Title": "Pets",

  "definitions": {
    "petType": {
      "oneOf": [
        {
          "$ref": "#definitions/cat"
        },
        {
          "$ref": "#definitions/dog"
        }
      ]
    },
    "cat": {
      "sounds": {
        "enum": [
          "meow",
          "ghh"
        ]
       }
    },
    "dog": {
      "sounds": {
        "enum": [
          "woof",
          "grr"
        ]
      }
    }
  },

   "properties": {
    "productType": {
      "type": "string",
      "enum": [
        "cats",
        "dogs"
      ]
    },

    "sounds": {
      "type": "string",
      "enum": [
        { "$ref":"#definitions/petType" }
      ] 
    }


  }
}

目标是通过匹配的宠物声音进行第二次下拉。但是如何正确地做出参考呢?

1 个答案:

答案 0 :(得分:0)

目前这是open issue with the spec

一种看待它的方法是你需要一个" $ ref"指针基于当前不支持的"$data" pointer

不幸的是,与此同时,需要使用应用程序逻辑而不是直接架构AFAIK来处理这样的安排。