1. 何为 JSON

JSON( JavaScript Object Notation ),即 JavaScript 对象表示法。JSON 主要用于存储和交换文本信息,类似于XML。但是和 XML 相比,JSON 是更加轻量级的文本数据交换格式,具有更小、更快、更易解析的特点。JSON 具有自我描述性,更易理解。虽然 JSON 使用 JavaScript 语法来描述数据对象,但是,JSON 是独立于语言和平台的。JSON 解析器和 JSON 库支持许多不同的编程语言。

2. JSON 基本语法

JSON 语法是 JavaScript 对象表示法语法的子集。具体内容如下:

  • 数据在key/value对中存储
  • 数据由逗号分隔
  • 花括号保存对象
  • 方括号保存数据

3. JSON值的类型

JSON的数据都在key/value对中存储,其中,这个值,可选类型如下:

  • 数字(整数或浮点数),例如:{ "number":12.34 }

  • 字符串(在双引号中),例如:{ "name":"qiumengchen" }

  • 逻辑值(true 或 false),例如:{ "isOpen":true }

  • 数组(在中括号中),例如:{ "array":[1.2 , "3" , true , [4,5] , {"test":"ok"} , null] }

  • 对象(在大括号中),例如:{ "person":{"name":"qiumengchen","isHandsome":true} }

  • null,例如:{ "blog":null }

总体来说,JSON的完整表现形式有两种:

  • JSON对象:以大括号({})为标志,对象可以包含多个key/value对,注意:对象中的每一项都必须是key/value对,不能是其他形式。但是,其中的key必须是字符串,其中的value可以是合法的JSON数据类型包括:数字、字符串、逻辑值、数组、对象、null等。例如:
{
"name": "qiumengchen",
"isHandsome": true,
"blog": {
"url": "qiumengchen.top",
"name": "myBlog"
}
}
  • JSON数组:以中括号([])为标志,数组可以包含多个value,value可以是合法的JSON数据类型包括:数字、字符串、逻辑值、数组、对象、null等。但是,一般来说,我们会保持数据中每个项的形式和意义的一致性,方便理解和运用。例如:
[ 99 , "qiumengchen" , true , [1,2,3] , {"name":"qiumengchen"} , null ]

4. 与XML比较

与XML相同之处

  • JSON 是纯文本
  • JSON 具有”自我描述性”(人类可读)
  • JSON 具有层级结构(值中存在值)
  • JSON 可通过 JavaScript 进行解析
  • JSON 数据可使用 AJAX 进行传输

与XML不同之处

  • 没有结束标签
  • 更短
  • 读写的速度更快
  • 能够使用内建的 JavaScript eval() 方法进行解析
  • 使用数组
  • 不使用保留字

5. 辅助工具

JSON在线解析工具(功能包括:JSON格式化、压缩、验证格式、JSON转XML、CSV、YAML),地址如下:https://c.runoob.com/front-end/53

Chrome浏览器插件:JSON-handle

原文:https://blog.csdn.net/qiumengchen12/article/details/72283079

Json schema前奏 关于JSON的更多相关文章

  1. 技术那么多,你想看看JSON Schema的测试吗?

    目录 1. 什么是JSON Schema? 2. 如何定义一个JSON Schema 3. 如何测试JSON Schema a) 使用JSON Schema validator GUI b) 在Jav ...

  2. Json.Net使用JSON Schema验证JSON格式

    Json.NET supports the JSON Schema standard via the JsonSchema and JsonValidatingReader classes. It s ...

  3. JSON Schema 校验实例

    JSON Schema 简介 JSON Schema is a vocabulary that allows you to annotate and validate JSON documents. ...

  4. Json Schema简介

    1. 引言 什么是Json Schema? 以一个例子来说明 假设有一个web api,接受一个json请求,返回某个用户在某个城市关系最近的若干个好友.一个请求的例子如下: { "city ...

  5. json schema校验

    工作中使用到了json schema格式校验的问题,在网上查了些资料,结合自己的理解记录一下. json schema可以对json结果字符串做出一些约束,例如: 1. 值类型是:array, obj ...

  6. Json schema 以及在python中的jsonschema

    目录 1. JSON Schema简介 2. JSON Schema关键字详解 2.1 $schema 2.2 title和description 2.3 type 3 type常见取值 3.1 当t ...

  7. Map传参优雅检验,试试json schema validator

    背景 笔者目前所在团队的代码年代已久,早年规范缺失导致现在维护成本激增,举一个深恶痛疾的例子就是方法参数使用Map"一撸到底",说多了都是泪,我常常在团队内自嘲"咱硬是把 ...

  8. 使用JSON Schema来验证接口数据

    最近在做一些关于JSON Schema的基建,JSON Schema可以描述一个JSON结构,那么反过来他也可以来验证一个JSON是否符合期望的格式. 如果之前看我写的<使用joi来验证数据模型 ...

  9. Json.Net使用JSON Schema验证JSON格式【实例】

    给出一个Json,验证其格式是否符合规则. { "coord": { //对象 "lon": 145.77, "lat": -16.92 } ...

随机推荐

  1. LOJ3058. 「HNOI2019」白兔之舞 [DP,MTT]

    LOJ 前置知识:任意长度NTT 普通NTT只能做\(2^k\)的循环卷积,尝试扩展成长度为\(n\)的循环卷积,保证模意义下\(\omega_n\)存在. 不管怎样还是要算点值.推式子: \[ \b ...

  2. Python研究

    听说Python是种高级语言,故打算研究一下,看看高级在哪 学习资源:https://www.liaoxuefeng.com/wiki/1016959663602400 由于上面所示的网站对Pytho ...

  3. uni-app 实现分享生成图片

    <template> <view> <view class="personal_li" @click="shareClick"&g ...

  4. golang字节数组拷贝BlockCopy函数实现

    在C#中,Buffer.BlockCopy(Array, Int32, Array, Int32, Int32) 函数使用比较广泛,其含义: 将指定数目的字节从起始于特定偏移量的源数组复制到起始于特定 ...

  5. AttributeError: 'builtin_function_or_method' object has no attribute 'reshape'

    AttributeError: 'builtin_function_or_method' object has no attribute 'reshape' 读取.mat文件时,copy没加括号

  6. 【Gamma】Scrum Meeting 2

    目录 写在前面 进度情况 任务进度表 Gamma阶段燃尽图 遇到的困难 照片 写在前面 例会时间:5.26 22:30-23:00 例会地点:微信群语音通话 代码进度记录github在这里 临近期末, ...

  7. [Beta]Scrum Meeting#3

    github 本次会议项目由PM召开,时间为5月8日晚上10点30分 时长15分钟 任务表格 人员 昨日工作 下一步工作 木鬼 撰写博客整理文档 撰写博客整理文档 swoip 改进界面 改进界面 bh ...

  8. Spark2.x(六十三):(Spark2.4)Driver如何把Task(闭包等)分配给Executor

    在Spark中一个appliation可能包含多个job,每个job都是由SparkContext#runJob(...)触发的,一个Job下包含1个或多个Stage,Job的最后一个stage为Re ...

  9. java命名总结

    下文主要来源于网上,我做了一些编辑整理. “如果你不知道一件事物叫什么, 你就不知道它是什么. 如果你不知道这是什么, 你就不可能坐下来写代码.” ----萨姆·加德纳(Sam Gardiner) 1 ...

  10. 转:goproxy和go modules的初步使用

    转:https://blog.csdn.net/qq_42403866/article/details/93654421 go module 管理比较方便. 启用: export GO111MODUL ...