JSON的由来
在目前的开发中,JSON是一种非常重要的数据格式,它并不是编程语言,而是一种可以在服务器和客户端之间传输的数据格式
JSON的全称是JavaScript Object Notation(JavaScript对象符号)
JSON是由Douglas Crockford构想和设计的一种轻量级资料交换格式,算是JavaScript的一个子集;
但是虽然JSON被提出来的时候是主要应用JavaScript中,
但是目前已经独立于编程语言,可以在各个编程语言中使用;
很多编程语言都实现了将JSON转成对应模型的方式;
其他的传输格式:
XML:在早期的网络传输中主要是使用XML来进行数据交换的,但是这种格式在解析、传输等各方面都弱于JSON,所以目前已经很少在被使用了;
Protobuf:另外一个在网络传输中目前已经越来越多使用的传输格式是protobuf,但是直到2021年的3.x版本才支持JavaScript,所以目前在前端使用的较少;
目前JSON被使用的场景也越来越多:
网络数据的传输JSON数据;
项目的某些配置文件;
非关系型数据库(NoSQL)将json作为存储格式;
JSON基本语法
JSON的顶层支持三种类型的值:
简单值:数字(Number)、字符串(String,不支持单引号)、布尔类型(Boolean)、null类型;
对象值:由key、value组成,key是字符串类型,并且必须添加双引号,值可以是简单值、对象值、数组值;
数组值:数组的值可以是简单值、对象值、数组值;
{
'name':'sabo',
'age':18,
'girlfriend':["aa","bb"]
}
JSON序列化
某些情况下我们希望将JavaScript中的复杂类型转化成JSON格式的字符串,这样方便对其进行处理:
比如我们希望将一个对象保存到localStorage中;
const obj = {
'name':'sabo',
'age':18,
'girlfriend':["aa","bb"]
}
// 将obj转成JSON格式的字符串
const objString = JSON.stringify(obj)
// 将对象数据存储localStorage
localStorage.setItem("obj", objString)
const jsonString = localStorage.getItem("obj")
但是如果我们直接存放一个对象,这个对象会被转化成 [object Object] 格式的字符串,并不是我们想要的结果;
携手创作,共同成长!这是我参与「掘金日新计划 · 8 月更文挑战」的第17天,点击查看活动详情