JSON,JSON 字符串,JSON 数据类型介绍
关注 1800
JSON
JSON(JavaScript Object Notation)是一种轻量级的数据格式,是 JavaScript 语言的一个子集。JSON 在各种编程语言中得到了广泛支持,并被普遍的运用到各种业务场景。
JSON 支持的数据类型
JSON 支持一些基本的 JavaScript 数据类型,包括数字类型,字符串类型,布尔类型,空值,数组,对象。至于更为复杂的数据类型,比如日期时间,或含有运算的表达式,则是不被接受的。
- 数字类型
JSON 中的数字可以是整数或者小数,不能是非数字
NaN,允许采用 JavaScript 中的科学计数法,比如,1.23e+3,-1.23e+5,1.23e-3,其中符号e后的+可以省略。JSON 仅支持十进制数字,你不能像在 JavaScript 中一样书写类似于0b1010一样的二进制数字,或类似于0xA09C一样的十六进制数字。- 字符串类型
JSON 仅支持采用
"括住的字符串,不支持使用'或`。字符串中可以出现以\开头的转义序列,比如,"姓名\t年龄","喜极而泣:\uD83D\uDE02"。- 布尔类型
JSON 中的布尔类型与 JavaScript 保持一致,可以是
true或false。- 空值
JSON 中的空值为
null,与 JavaScript 保持一致。- 数组
JSON 中的数组与 JavaScript 数组类似,但其包含的值的数据类型只能是 JSON 所支持的,比如,
["你好!",123,true]。- 对象
JSON 中的对象与 JavaScript 对象类似,但其包含的内容主要通过键值对来进行描述,值的数据类型只能是 JSON 所支持的,键只能是采用
"括住的字符串,比如,{"age":12,"name":"一个好心人"}。
转义
想要详细了解转义,你可以查看转义,转义字符,转义序列介绍一节。
JSON 字符串
顾名思义,JSON 字符串是指符合 JSON 格式的字符串,这些字符串可以存在于某个文件中,或作为代码书写的字面量。
JSON 字符串与 JavaScript 对象之间的区别
这个问题似乎没有必要解答,JSON 字符串与 JavaScript 对象的区别较为明显,前者是string类型,后者是object类型,JSON 字符串必须严格遵守 JSON 的标准,而 JavaScript 对象则比较随意,其包含的值的数据类型可以不在 JSON 标准内。
值,数据类型
关于字面量,你可以查看值的表示一段。
下面的 JavaScript 常量json存储了一个 JSON 字符串。
const json = '{"id":1234,"name":"小书屋 001 号"}'包含了学生信息的 JSON 字符串,被存储在文件students.json中。
[
{ "name": "小小", "age": 12 },
{ "name": "小白", "age": 13 }
]JSON 字符串转换
在支持 JSON 的语言中,一般都存在一些函数或方法,用于将 JSON 字符串转换为某种其他的数据类型,或执行相反的操作。这是比较容易理解的,因为没人愿意直接读取或写入字符串包含的数据。
JavaScript 提供了parse和stringify两个方法来进行 JSON 字符串的转换。
// 存储了植物信息的 JSON 字符串
const plant_json = '{"name":"一棵大树","height":5}'
// 将 JSON 字符串转换为一个 JavaScript 对象
const plant = JSON.parse(plant_json)
// 修改信息,并将 JavaScript 对象转换为 JSON 字符串
plant.height = 7
console.log(JSON.stringify(plant)){"name":"一棵大树","height":7}源码
json.js·codebeatme/programming·GitHub
json/students.json·codebeatme/programming·GitHub