根据javascript中的模式验证json

scyqe7ek  于 2022-12-01  发布在  Java
关注(0)|答案(2)|浏览(140)
  • 问题:*

有没有一种简单的或原生的javascript方法来根据JSON模式验证JSON脚本?
我在Github上找到了很多库,但是没有原生/普通的解决方案。EcmaScript没有这方面的规范吗?没有一个浏览器(或节点)有原生验证JSON的方法吗?

  • 问题上下文:*

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

roejwanj

roejwanj1#

简单地说,没有。
有一个叫做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
  }
}
djmepvbi

djmepvbi2#

现在似乎至少有一个纯JS解决方案(https://github.com/tdegrunt/jsonschema)可以通过npm(https://www.npmjs.com/package/jsonschema)获得。

相关问题