当前位置: 首页 > 知识库问答 >
问题:

如何在JSON模式中使用来自外部文件的定义?

潘璞瑜
2023-03-14

我试图使用$ref从另一个json模式导入定义,但得到以下错误:

{
  "$schema": "http://json-schema.org/draft-06/schema#",

  "definitions": {
    "datetime": {
      "type": "string"
    },
    "name": {
      "type": "string"
    },
  }
}

{
  "$schema": "http://json-schema.org/draft-06/schema#",
  "properties": {
    "active": {"type": "boolean"},
    "created_at": { "$ref": "../base/definitions.schema.json#/definitions/datetime" },
    "name": { "$ref": "../base/base/definitions.schema.json#/definitions/name" },
    "updated_at": { "$ref": "../base/definitions.schema.json#/definitions/datetime" }
  },
  "required": ["name"],
  "type": "object"
}

目录结构:

api
-- base
  -- definitions.schema.json
-- country
  -- country.schema.json

通过使用绝对路径、文件url和路径的其他几种组合,我尝试了几种组合。不知道是怎么回事。

架构验证器:AJV@5.1.1

共有1个答案

朱锐
2023-03-14

您需要使用“AddSchema”方法添加模式。$ref是相对于“id”属性解析的(在草稿-06中是“$id”),ajv不(也不能)使用文件路径。

编辑:在文档中添加$ref部分。

 类似资料:
  • 我试图从外部文本文件中读取dataframe模式,并使用它创建一个dataframe。然而,我无法理解如何将string转换为StructType。 我正在使用Spark 2.1和Java。这是代码片段。 如何将上述代码中的struct2转换为StructType? 结构文件包含这个

  • 问题内容: 我正在使用的其余服务响应类似于以下示例,这里仅包括3个字段,但还有更多内容: 我想为上述(草案04)编写一个JSON模式文件,该文件将明确指定: 但是,找不到任何文档或如何执行此操作的示例。 目前,我的JSON模式如下所示: 我应该如何处理的任何指针/示例。 问题答案: 我认为推荐的方法是Json-Schema web Example2中显示的方法。您需要使用一个枚举来“按值”选择架构

  • 使用Jackson(最新版本可以)为JAVA bean/POJO类生成一个JSON模式,这样它就可以正确地包含嵌套对象的结构,并且还希望向嵌套POJO添加自定义属性(在我的例子中,希望为每个嵌套POJO参数添加一个完全分类的classname属性)。 用例- 比如说,我有一个Person类,如下所示。我用这个人作为我某个操作的参数。- 这个问题肯定与此相关--如何使用jackson遍历生成的jso

  • 问题内容: 我有以下两个javascript函数: 1 2 我想将它们放在外部“ .js”文件中 1 2 调用这些函数的正确语法是什么? 问题答案: 像这样的代码 希望对您有帮助。…谢谢