对于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()