前言
在深度学习算法开发过程中,常常在数据集下载和读取的过程里遇到.json文件的要求,因此本文针对JSON进行了一些介绍,方便后续查阅,加深对JSON及其使用的理解。
提示:以下是本篇文章正文内容。
一、JSON是什么?
计算机网络之中常常需要一个系统把数据传输给另外一个系统,就如同一个人把消息传达给另一个人。当两个人交流的时候,我们需要一种共同的语言才能明白对方的意思,同样的,两个系统要正常交换数据,也需要预定义一种为双方计算机所接受的“语言“,这种语言我们称之为”数据交换语言“。
由于涉及在不同的系统不同的语言间交换数据,我们一般倾向于使用无关于平台及语言的数据交换语言,而JSON(JavaScript Object Notation)就是其中一种。作为一种轻量级的、易于编写和阅读的数据交换语言,JSON作为一种通用的资料格式得到了广泛使用。
二、JSON语法规则
1. 通用数据类型
从结构上看,所有的数据(data)最终可以分解成三种类型:
- 标量(scalar),也就是一个单独的字符串(string)或数字(numbers),比如“cat”这个单独的词。
-序列(sequence),也就是若干个相关的数据按照一定顺序并列在一起,又叫做数组(array)或者列表(list),比如[“cat”,“dog”]。 - 映射(mapping),也就是一个名称(name)- 值(value)的映射,即数据有一个名称,还有一个与之相对应的值,这又称作散列(hash)或字典(dictionary),比如“animal”:“cat”。
因此只需要这些基本单元,就可以实现对数据的存储。那么JSON是如何定义这些基本单元的呢?
2.JSON基本数据类型及语法
- 数值:十进制数,不能有前导0,可以为负数,可以有小数部分。还可以用e或者E表示指数部分。不能包含非数,如NaN。不区分整数与浮点数。
- 字符串:以双引号""括起来的零个或多个Unicode码位。支持反斜杠开始的转义字符序列。
- 布尔值:表示为true或者false。
- 数组:有序的零个或者多个值。每个值可以为任意类型。序列表使用方括号[,]括起来。元素之间用逗号,分割。形如:[value, value]
- 对象:若干无序的“键-值对”(key-value pairs),其中键是数值或字符串。建议但不强制要求对象中的键是独一无二的。对象以花括号{开始,并以}结束。键-值对之间使用逗号分隔。键与值之间用冒号:分割。
- 空值:值写为null
所以可以看到,JSON就是在通用类型上对不同数据类型的定义进行了细化,数据类型简单、轻量,而且有着极高的可读性和泛用性。
总结
以上就是今天要讲的内容,本文仅仅简单介绍了JSON是什么以及基本语法,更多内容可以参考链接。另外,借助JSON格式检验网站,你也可以轻松在线检验JSON代码格式的正确,同时能够得到相应的修改意见,如果你的代码没有问题,还会自动帮你排版为更易读的版式。