json schema python,json schema生成工具

  json schema python,json schema生成工具

  如果你曾经使用过XML Schema、RelaxNG或者ASN.1,那么你很可能已经知道JSON Schema是什么,你可以跳过这篇文章。如果你是第一次听到这个词,或者你不知道它,那么你来对地方了。

  要了解JSON Schema是什么,首先要了解JSON是什么。

  JSON代表“JavaScript对象符号”,一种简单的互联网数据交换格式。因为JavaScript存在于大多数Web浏览器中,而JSON是基于JavaScript的,所以在JavaScript中很容易得到支持。同时,它已经被证明是有用的和足够简单的,现在它也被用在许多其他不涉及互联网数据交换的环境中。

  本质上,JSON是建立在以下数据结构之上的:

  Object: {key1: value1 , key2: value2} Array: [first , second , This ]Value:42 3.1415926 String:这是一个字符串过时Pluto: true false null: null这些类型在大多数编程语言中比较接近。

  通过这些简单的数据类型,可以表达各种结构化数据。然而,这种巨大的灵活性带来了巨大的责任,因为同一个概念可以用无数种方式表达。例如,您可以想象用不同的方式在JSON中表达关于某人的信息:

  { 姓名:复杂的老鼠华盛顿,生日: 1732年2月22日,地址:美国弗吉尼亚州芒特弗农 }以及:

  {first_name: complex mouse , last _ name: Washington , birthday: 1732-02-22 , address : 3200 Mount Vernon memorial highway ,City: Mount Vernon , State: Virginia , Country: United States}}以上两种表达方式同样有效,但第二种明显比第一种更正式。数据的设计很大程度上取决于它在应用程序中的预期用途,因此这里没有正确或错误的答案。然而,当一个应用程序请求并期望通过API获得一个人的JSON记录时,确切地知道记录应该如何组织是很重要的。也就是说,当我们需要知道JSON数据中的预期字段以及这些值是如何表示的时,这就是JSON Schema的用武之地。

  下面的JSON模式片段描述了上面的第二个例子是如何构建的。这里就不解释细节了,但是如果你仔细看的话,可以看到上面第二个例子中的JSON数据结构和每个字段的类型信息在这里都解释的很清楚。

  { type: object , properties :{ type: string }, last_name: { type: string },生日:{ type : string , format: date }, address: { type: object , properties :{ street _ address :{ type : string }, city: { type: string },State: {type: string}, country : type : string }:{ type : type : string :{ type : type :

  { 姓名:复鼠华盛顿,生日: 1732年2月22日,地址:美国弗吉尼亚州芒特弗农 }复制代码。然而,第二个例子是通过:

  {first_name: complex mouse , last _ name: Washington , birthday: 22-02-1732 , address : street _ address : 3200 Mount Vernon memorial highway ,City: Mount Vernon , State: Virginia , Country : United State } }你可能注意到JSON Schema本身就是用JSON写的。它是JSON数据的规范,而不是计算机程序。只是一种“描述JSON数据结构”的声明格式。这既是它的优点,也是它的缺点(类似于其他模式语言)。它能简单而简明地描述数据的表层结构,并能在程序运行时用来自动验证数据。但是,因为JSON Schema不能包含任意代码,所以对不能表达的数据元素之间的关系有一些限制。因此,对于足够复杂的数据格式,任何“验证工具”都可能有两个验证阶段:一个在结构级别,另一个在语义级别。对于结构级检查,可以使用模式语言。对于语义级检查,可能有必要使用更通用的编程语言。

  JSON在API的设计和实现中起着重要的作用。具有JSON模式验证能力的API实现可以帮助自动验证来自用户的输入数据,它可以应用于程序运行时需要验证的各种场景。这可以帮助开发者以更加标准化和严谨的方式描述其API中携带的JSON数据,同时,编写更少的手动验证代码。

  可惜目前流行的REST API设计不能直接使用JSON Schema带来的这种能力。这很大程度上是因为,在REST API的设计理念中,API所请求的参数并不是一个JSON对象,而是以资源模型的方式来描述的,这使得无法使用JSON Schema来描述和自动验证这类API上传递的数据。

  在灵长目科技CEAMS通用企业应用接口管理系统中,系统没有使用REST API的设计风格,而是参考了经典的SOAP协议设计,规定API的请求参数和返回结果必须是JSON对象或数组,并为开发者提供了一个具有JSON Schema支持的API规范设计指南,用户可以方便地在自己的API上设计和制定JSON数据规范。同时,设计的JSON Schema会在程序执行时完成对请求的JSON数据和返回结果的验证,有助于提高API数据的安全性,避免繁琐的手写验证码。

  JSON Schema除了用于验证JSON数据,还可以为JSON数据提供清晰严谨的语句,在自动化API文档、自动生成输入表单、JSON数据可视化等方面也有很好的应用场景。有许多开源项目提供了基于JSON模式的自动输入表单生成功能。CEAMS系统集成了众所周知的Angular Schema形式,作为开发者清晰直观的API测试工具。这类工具有助于开发人员进一步简化API测试过程,提高测试效率。

郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。

相关文章阅读

  • js把字符串转为json,json字符串转换成json对象
  • js把字符串转为json,json字符串转换成json对象,js 将json字符串转换为json对象的方法解析
  • json语法格式,json格式定义
  • json语法格式,json格式定义,Json格式详解
  • json格式数据类型,什么是JSON数据-其常见格式是什么-
  • json格式数据类型,什么是JSON数据-其常见格式是什么-,JSON 数据格式详解
  • json格式怎么写,json文件内容格式
  • json格式怎么写,json文件内容格式,json文件书写格式详解
  • json数组对象转化为json字符串,js把数组转化为json
  • json字符串转换成对象有哪几种方法,字符串转化为json的方法
  • json字符串转换成对象有哪几种方法,字符串转化为json的方法,JSON对象转化为字符串详解
  • json基础介绍与详细用法教程,json基础知识
  • json基础介绍与详细用法教程,json基础知识,JSON基础介绍与详细用法
  • json去掉反斜杠,json字符串中有反斜杠
  • json去掉反斜杠,json字符串中有反斜杠,详解json串反转义(消除反斜杠)
  • 留言与评论(共有 条评论)
       
    验证码: