8 javascript schema json ecmascript-6
题:
是否有一种简单或本机的JavaScript方法来验证JSON模式的JSON脚本?
我在Github上发现了很多库,但没有原生/普通的解决方案.EcmaScript没有这方面的规范吗?什么浏览器(或nodejs)都没有办法本机验证JSON?
问题背景:
我开发了一个非常复杂的模式.它应该与一个脚本一起工作,该脚本要求传入JSON数据以符合模式.
简单地说,不。
有一种叫做JSON Schema的东西,它是Internet草案,于2013年到期。Internet草案是产生Internet Standard的第一步。尽管它尚未(据我所知)被广泛使用,但仍可以在官方网站上查看有关它的更多信息,因为它似乎仍有可能被积极开发。
模式的示例:
{
"$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"
}
}
}
}
}
Run Code Online (Sandbox Code Playgroud)
将验证此示例JSON:
{
"id": 1,
"name": "Foo",
"price": 123,
"tags": [
"Bar",
"Eek"
],
"stock": {
"warehouse": 300,
"retail": 20
}
}
Run Code Online (Sandbox Code Playgroud)
编辑由于它们(或多或少)都执行相同的操作并且具有非常相似的语法,因此性能应该是最大的问题。请参阅此处以比较JSON验证程序的性能-获胜者是ajv,这就是我个人出于这个原因所使用的。
现在似乎至少有一种纯 JS 解决方案(https://github.com/tdegrunt/jsonschema)可通过 npm(https://www.npmjs.com/package/jsonschema)获得。我不是贡献者,尽管我很欣赏他们的工作。
| 归档时间: |
|
| 查看次数: |
9734 次 |
| 最近记录: |