前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >json-schema入门

json-schema入门

作者头像
IMWeb前端团队
发布2019-12-04 13:55:25
1.9K0
发布2019-12-04 13:55:25
举报
文章被收录于专栏:IMWeb前端团队IMWeb前端团队

本文作者:IMWeb moonye 原文出处:IMWeb社区 未经同意,禁止转载

json-schema(一)

相关知识点

  1. 它是什么 描述json的数据格式
  2. 有什么优点
    • 描述自定义的数据格式
    • 清晰,对人和机器友好
    • 完整的结构校验
      • 自动化测试
      • 校验表单提交数据

一个简单的示例构建自己的json-schema

一个数据对象或者API的数据是这样的
代码语言:javascript
复制
{
    "id": 1,
    "name": "A green door",
    "price": 12.50,
    "tags": ["home", "green"]
}
json-scheme类似xml或者html,有一个声明的头

这里可以看到有文档遵循的协议格式,标题,描述以及文档的类型

代码语言:javascript
复制
{
    "$schema": "http://json-schema.org/draft-04/schema#",
    "title": "Product",
    "description": "A product from Acme's catalog",
    "type": "object"
}
如何描述对象的属性,以及对象属性上的规则
代码语言:javascript
复制
"properties": {
    "id": {
        "description": "The unique identifier for a product",
        "type": "integer"//数据的类型
    },
    "name": {
        "description": "Name of the product",
        "type": "string"
    },
   "price": {
       "type": "number",
       "minimum": 0,//最小值
       "exclusiveMinimum": true//排除掉最小值,不允许为0
   },
   "tags": {
       "type": "array",//数据的类型是数组
       "items": {//数组里每个item都是字符串
           "type": "string"
       },
       "minItems": 1,
       "uniqueItems": true
   }
},
"required": ["id", "name"]

实际应用

  1. 数据校验

完成表单数据校验,数据类型,格式定义和实际dom分离 schema

代码语言:javascript
复制
var validation = schema.validate({

    q: 'OK',
    start: -5,
    num: -100.99,
    xyz: 'additionalProperty'
})

未压缩情况下面加起来不到20kb,压缩体积会更小,适合数据校验

直出后这里node后台层应该是需要一个强类型的结构来定义协议,jsonschema是个不错的选择

  1. 通过json-scheme生成表单,动态配置属性,json格式可以在外部定义,可以继承等等

json-editor

  1. jsonschema数据格式生成器

jsonschema.net 使用者自己书写数据,框架根据数据生成格式

  1. 文档格式生成器

demo 目前仅支持jade语法。。。。

  1. 数据格式的重用,继承
    • 直接引用另一个jsonschema中定义的类型
    • 通过运算符对引用的json格式做扩展,引入

相关文档可参考这里

工具支持

方便书写jsonschema格式 vm工具 json schema lint 一个在线的格式检验工具,可以作为插件集成到构建中去

相关标准文档

  1. json-schema core 描述基本的json schema格式
  2. json-schema validate 描述json-schema的校验标准
本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2016-04-11 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • json-schema(一)
    • 相关知识点
      • 一个简单的示例构建自己的json-schema
        • 实际应用
          • 工具支持
            • 相关标准文档
            相关产品与服务
            文件存储
            文件存储(Cloud File Storage,CFS)为您提供安全可靠、可扩展的共享文件存储服务。文件存储可与腾讯云服务器、容器服务、批量计算等服务搭配使用,为多个计算节点提供容量和性能可弹性扩展的高性能共享存储。腾讯云文件存储的管理界面简单、易使用,可实现对现有应用的无缝集成;按实际用量付费,为您节约成本,简化 IT 运维工作。
            领券
            问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档