分享一个自己写的 json-schema 生成工具

2017-12-29 19:18:09 +08:00
 sean2009

介绍

JSON-SCHEMA 是一种基于 JSON 格式定义 JSON 数据结构的规范,有如下特性:

  1. 描述现有数据格式。
  2. 干净的人类和机器可读的文档。
  3. 完整的结构验证,有利于自动化测试。
  4. 完整的结构验证,可用于验证客户端提交的数据。

json-schema 演示

{
    "type": "object",
    "properties": {
        "id": {
            "type": "integer"
        },
        "name": {
            "type": "string"
        },
        "price": {
            "type": "number",
            "minimum": 0,
            "exclusiveMinimum": true
        }
    },
    "required": ["id", "name"]
}

Why

作者为什么开发一个 easy-Json-schema 工具呢,就是为了简化 json-schema 定义,大家看看上面的 json 定义,一个很简单结构的 json 用了非常多的字段定义,书写起来非常麻烦。

easy-json-schema

如果用 easy-json-schema 定义上面的 json 结构,是非常清晰和易用的。

{
    "*id": "integer",
    "*type": "string",
    "price":{
        "type": "number",
            "minimum": 0,
            "exclusiveMinimum": true
    }
}

感兴趣的朋友可以关注下

github: github.com/easy-json-schema

在线演示: easy-json-schema.github.io

9906 次点击
所在节点    分享创造
3 条回复
Death
2017-12-30 00:28:15 +08:00
这样简化会产生模糊性吧?比如 type 作为属性名时?

比如这个
{
"**id": "string",
"name": "string",
"type":"number"
}
sean2009
2017-12-30 11:51:11 +08:00
如果 type 作为属性名,可以这么写

type: {type: number}
slgz
2017-12-30 17:10:19 +08:00
工具很好, 我选择 JSON-handle

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/418698

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX