有没有一种简单的或原生的javascript方法来根据JSON模式验证JSON脚本?我在Github上找到了很多库,但是没有原生/普通的解决方案。EcmaScript没有这方面的规范吗?没有一个浏览器(或节点)有原生验证JSON的方法吗?
我开发了一个非常复杂的模式,它应该与一个脚本一起工作,该脚本要求传入的JSON数据符合该模式。
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 } }
djmepvbi2#
现在似乎至少有一个纯JS解决方案(https://github.com/tdegrunt/jsonschema)可以通过npm(https://www.npmjs.com/package/jsonschema)获得。
2条答案
按热度按时间roejwanj1#
简单地说,没有。
有一个叫做JSON Schema的东西,它是一个2013年到期的互联网草案。互联网草案是产生Internet Standard的第一个阶段。在official site上看到更多关于它的信息,因为它似乎仍然在积极地开发,尽管它(据我所知)没有被广泛使用。
架构示例:
将验证此示例JSON:
djmepvbi2#
现在似乎至少有一个纯JS解决方案(https://github.com/tdegrunt/jsonschema)可以通过npm(https://www.npmjs.com/package/jsonschema)获得。