JSON数据存储(一)

167 阅读2分钟

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天,点击查看活动详情