JSON Schema的应用(具体的使用场景)

这篇具有很好参考价值的文章主要介绍了JSON Schema的应用(具体的使用场景)。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

什么是JSON Schema

JSON Schema 是用于验证 JSON 数据结构的强大工具,Schema可以理解为模式或者规则。

要定义 JSON Schema 是什么,我们可能应该首先定义 JSON 是什么。JSON 代表“JavaScript Object Notation”,一种简单的数据交换格式。它最初是作为万维网的符号。由于 JavaScript 存在于大多数 Web 浏览器中,并且 JSON 基于 JavaScript,因此很容易支持。然而,它已被证明足够有用且足够简单,以至于它现在被用于许多其他不涉及网上冲浪的环境中。

JSON Schema 本身是用 JSON 编写的。它是数据本身,而不是计算机程序。它只是一种用于“描述其他数据结构”的声明性格式。

JSON Schema demo

以Object类型为例,列举在JSON Schma所经常用到的关键字,如下

{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "$id": "https://example.com/schemas/person",
  "title": "base info",
  "description": "base information about person",
  "type": "object",
  "required": ["name", "age", "phone"],
  "definitions": {
    "name": {
      "type": "string",
      "minLength": 1,
      "maxLength": 10
    }
  },
  "properties": {
    "name": {
      "type": "string",
      "minLength": 1,
      "maxLength": 10
    },
    "age": {
      "type": "number",
      "minimum": 18,
      "exclusiveMinimum": true,
      "maximum": 65,
      "exclusiveMaximum": true
    },
    "phone": {
      "type": "string",
      "pattern": "^1\\d{10}$"
    },
    "parents": {
      "type": "array",
      "items": [{ "$ref": "#/definitions/name" }],
      "minItems": 1,
      "maxItems": 2,
      "uniqueItems": true
    },
    "address": {
      "type": "object",
      "properties": {
        "city": {
          "type": "string",
          "enum": ["guangzhou", "beijing"]
        }
      }
    }
  }
}

关键字描述

关键字 描述
$schema 声明此json片段属于JSON Schema,并遵循所声明的JSON Schema版本规范
$id 为JSON Schema声明一个统一资源标识符,使解析$ref时能够引用片段
title 为JSON Schema文件提供标题
description 为JSON Schema文件提供描述信息
definitions 声明子schema,使解析$ref能够引用片段
$ref 引用JSON Schema片段
required 定义对象类型properties所声明的字段是否必须,值必须是数组,数组中的元素必须是字符串类型且唯一
type 定义元素的类型
properties 定义对象类型里的属性(键值对),每个字段的值都是一个有效的schema片段,用来限制每个字段的格式
minimum 约束取值范围,标识取值范围应该大于或等于minimum
exclusiveMinimum 假若minimum或exclusiveMinimum同时存在,且exclusiveMinimum为true,则取值范围大于minimum
maximum 约束取值范围,标识取值范围应该小于或等于maximum
exclusiveMaximum 假若maximum或exclusiveMaximum同时存在,且exclusiveMaximum为true,则取值范围小于maximum
minLength 字符串类型数据的最小长度
maxLength 字符串类型数据的最大长度
pattern 使用正则表达式约束字符串类型数据
items 用来定义数组类型的子元素,值必须为数组,且是一个有效的schema片段
minItems 定义数组类型大小的最小长度
maxItems 定义数组类型大小的最大长度
uniqueItems 定义数组类型子元素是否必须唯一
enum 用来限制值的范围,值必须在enum所指定的集合里面

以上是比较常用到的关键字,还有一些其他的关键字可以阅读官方文档进行深入地了解和使用

Understanding JSON Schema

基于JSON Schema配置文件渲染UI组件

借助vue、react框架组件化理念以及动态渲染组件能力,涌现了许多基于JSON Schema配置文件渲染表单或者组件的库,有效解决通用性组件大量重复使用的场景。通过JSON配置组件乃至页面,能够使代码转化为文件,使数据得以导入导出,便于迁移储存。另外也可以开发可视化编辑器,通过拖拽交互,生成JSON文件,降低开发使用难度。基于这一系列的方案,使开发效率大大提升和降低后续的代码维护。
jsonschema,工具使用,json,javascript,前端,lowcode

vue-json-schema-form

demo地址:https://form.lljj.me/#/demo?type=Simple

jsonschema,工具使用,json,javascript,前端,lowcode

react-jsonschema-form

demo地址:https://rjsf-team.github.io/react-jsonschema-form/

jsonschema,工具使用,json,javascript,前端,lowcode

@designable/formily-antd

demo地址:https://tiandisheng.top/~demos/basicdesignable-main

jsonschema,工具使用,json,javascript,前端,lowcode

数据校验

todo

参考资料

JSON Schema 规范(中文版)
JSON Schema入门和应用
数据校验之JSON Schema文章来源地址https://www.toymoban.com/news/detail-626379.html

到了这里,关于JSON Schema的应用(具体的使用场景)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 解决./composer.json" does not match the expected JSON schema

    如果执行composer install的时候报错 这是因为name里的格式不符合要求,需要 有/   ,并且不能有大写,仔细检查下正则那句话 无语!

    2024年02月16日
    浏览(62)
  • 深入解析 JWT(JSON Web Tokens):原理、应用场景与安全实践

    JWT(JSON Web Tokens)是一种开放标准(RFC 7519),用于在各方之间安全地传输信息作为 JSON 对象。由于其小巧和自包含的特性,它在 Web 应用程序和服务之间尤其流行用于身份验证和信息交换。JWT 的主要优点和特性包括: 自包含(Self-contained): JWT 本身包含了所有必要的信息。

    2024年02月04日
    浏览(49)
  • 判断一个数据是否为 JSON 数据与使用场景

    判断一个数据是否为 JSON 数据,可以通过以下几个步骤: 首先,判断该数据是否为字符串类型。因为 JSON 数据通常是以字符串形式传输的。 然后,使用 try...catch 语句尝试将该字符串解析为 JSON 数据。如果解析成功,则说明该数据为 JSON 数据;否则,说明该数据不是 JSON 数据

    2024年02月09日
    浏览(48)
  • JSON(一) -- JSON转换工具 -- Jackson的使用

    目录 1.  Jackson的简介: 2.  JSON转换的案例 2.1  对象 = JSON JSON= 对象 2.2  Map = JSON JSON= Map 2.3  List = JSON JSON= List Jackson 是一种用于 Java 应用程序中 JSON 转换的开源库。 以下是使用 Jackson 进行 JSON 转换的基本步骤: (1) 导入 Jackson 库:您需要在项目中导入 Jackson 库,以便在

    2024年02月06日
    浏览(30)
  • go 语言中 json.Unmarshal([]byte(jsonbuff), &j) 字节切片得使用场景

    struct_tag的使用 在上面的例子看到,我们根据结构体生成的json的key都是大写的,因为结构体名字在go语言中不大写的话,又没有访问权限,这种问题会影响到我们对json的key的名字,所以go官方给出了struct_tag的方法去修改生成json时,对应key的名字 map 生成json json解析到map json解

    2024年01月23日
    浏览(40)
  • JSON-handle工具安装及使用

    JSON-Handle 是一款非常好用的用于操作json的浏览器插件,对于开发人员和测试人员来说是一款很好用的工具,如果你还没有用过,请赶紧下载安装吧,下面是安装过程和具体使用。 点击下载JSON-Handle 360浏览器安装 打开360浏览器 - 将下载好的JSON-handle_0.6.1.crx拖到浏览器中 - 然后

    2024年01月25日
    浏览(31)
  • uniapp使用微信开发工具打开微信小程序运行[ app.json 文件内容错误] app.json: 在项目根目录未找到 app.json

    这是 uniapp 项目 还未转成微信小程序 需要转换一下     重点:   首先一定要有 unpackage文件夹   如果没有的需要到HBuilder X 编译一下 编译完,可以看到如下目录既可以了

    2024年02月07日
    浏览(50)
  • UniApp之使用manifest.json应用配置的详细教学

    manifest.json 文件是 UniApp 开发中用来配置应用信息的重要文件。通过修改 manifest.json 文件,开发者可以配置应用的名称、图标、启动页面、权限等信息。本文将为您提供详细的教学,介绍如何使用 manifest.json 文件进行应用配置,并提供示例代码帮助您更好地理解。 在您的 Uni

    2024年02月15日
    浏览(34)
  • 并发测试工具 apache-jmeter使用发送post请求JSON数据

    目录 1 下载安装 2 汉化 3 创建高并发测试 配置线程组 创建web请求 创建监听器 结果树 汇总报告  为web请求添加token 添加Content-Type用于发送json 4 启动测试 5 查看结果 官网 Apache JMeter - Download Apache JMeter 解压运行 2   打开软件设置中文 效果 补充知识: 什么是Damp-up: Ramp-Up Perio

    2024年02月10日
    浏览(46)
  • vue3-json-schema-form中StringField.vue报错 `<script setup>` cannot contain ES module exports vue/no-e

    vue3-json-schema-form课程中StringField.vue照着打报错 原代码如下: 修改后代码如下: type.ts文件代码片段如下: 主要问题就是说script标签中加上setup,代码块中不能再出现export default,将该部分代码 修改为:

    2024年02月11日
    浏览(34)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包