对于json的简单理解

什么是json

js红宝书上描述到:

json是一种数据格式,不是编程语言,它不属于javaScript,他们只是有着相同的语法,json也不止可以在js中使用

json语法

json语法有三种类型的值

1、简单值:字符串、数值、布尔型、null

2、对象:第一种复杂类型数据

3、数组:第二种复杂类型数据,数值的值可以是任意类型,包括简单值、对象、其他数组

json没有变量、函数、对象实列的概念

json字符串和js字符串的最主要的区别就是,json字符串必须使用双引号(单引号会导致语法错误)

json对象和js对象的区别:

js对象

let person{
 name:"tom",
 age:"20"
};

json对象

{
"name":"alice",
"age":"20"
}

可以看出,json对象没有变量声明(json种没有变量)、没有分号(json不属于js语句)、属性必须双引号包裹起来

json的解析与序列化

在json对象种有两个方法

stringify()、parse()

stringify():可以把js序列转换为json字符串.

parse():可以把json解析为原生的js值

json.stringify()还可以接收两个参数,第一个参数是过滤器,可以是数组或函数,第二个参数用于缩进结果JSON字符串的选项。

let book={
title: "LOL",
authors:[
"tom",
"mody"
],
edition: 4,
year: 2017
};
let jsonText=JSON.stringify(book,["title","edition"]);

//控制字符缩进
let jsonText=JSON.stringify(book,null,4)


{"title:"LOL","edition":4}

对于需要在JSON.stringify()之上自定义JSON序列化,可以用到toJSON()方法

就是把js数据转换为json数据

把json数据转化为JS数据: JSON.parse()

posted @ 2021-06-01 11:31  啊方不方  阅读(281)  评论(0编辑  收藏  举报