javascript - 根据 javascript 中的模式验证 json

标签 javascript json ecmascript-6 schema

问题:

是否有一种简单的或原生的 javascript 方法来根据 JSON 模式验证 JSON 脚本?

我在 Github 上找到了很多库,但没有原生/简单的解决方案。 EcmaScript 没有这方面的规范吗?并且没有任何浏览器(或 nodejs)有办法在本地验证 JSON 吗?

问题的上下文:

我开发了一个非常复杂的架构。 它应该与一个脚本一起工作,该脚本要求传递给它的 JSON 数据符合模式。

最佳答案

简单地说,不。

有一种东西叫JSON Schema ,这是一份于 2013 年到期的互联网草案。互联网草案是产生 Internet Standard 的第一阶段。 .在 official site 查看更多信息,因为它似乎仍在积极开发中,尽管(据我所知)并未得到广泛使用。

架构示例:

{
  "$schema": "http://json-schema.org/schema#",
  "title": "Product",
  "type": "object",
  "required": ["id", "name", "price"],
  "properties": {
    "id": {
      "type": "number",
      "description": "Product identifier"
    },
    "name": {
      "type": "string",
      "description": "Name of the product"
    },
    "price": {
      "type": "number",
      "minimum": 0
    },
    "tags": {
      "type": "array",
      "items": {
        "type": "string"
      }
    },
    "stock": {
      "type": "object",
      "properties": {
        "warehouse": {
          "type": "number"
        },
        "retail": {
          "type": "number"
        }
      }
    }
  }
}

将验证此示例 JSON:

{
  "id": 1,
  "name": "Foo",
  "price": 123,
  "tags": [
    "Bar",
    "Eek"
  ],
  "stock": {
    "warehouse": 300,
    "retail": 20
  }
}

关于javascript - 根据 javascript 中的模式验证 json,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38936442/

相关文章:

javascript - 如何初始化 jquery 方法的表单添加?

javascript - 检索从 $.getJSON 返回的 Json 对象的属性

javascript - Array.prototype.filter - 是否可以使用多个条件过滤多个条件? [JS、VueJS]

javascript - React 组件 - 去抖

javascript - 为什么以及何时需要在 React 中绑定(bind)函数和事件处理程序?

javascript - 如何计算 Javascript 中的 css 规则优先级?

javascript - 使用 Tempus Dominus 的日期时间选择器防止输入字段上的移动键盘

javascript - 从 hh :mm:yy (24 hour) to expanded time form 开始的时间转换

jquery - 使用 npm package.json 文件获取最新版本并正确命名插件

java - 反序列化通用类 Jackson 或 Gson