对JSON的理解

JSON语法:

JSON是一种结构化数据,它是一种数据格式

JSON可以概括为三种类型:简单值、对象、数组

注意:JSON不支持变量、函数和对象实例

一、JSON简单值

包括字符串、数值、布尔值、和null(json不支持js中的undefined)

例如:

  5   ---------------------->json数值;

  "hello" ---------------------->json字符串(json字符串必需使用双引号!);

布尔值和null也是有效的json形式,但实际中json更多的用来表示复杂的数据结构,简单值只是整个数据结构中的一部分。

二、JSON对象

本质上就是对象,但对象就是在本地用,json对象是用来传输的

先写一个js对象:

var person={

  name:"tom",

  age:3,

};

js对象的属性名可以为双引、单引或不加引号,属性值可以为js简单值,也可以为js复杂值

故也可以写成

var operson={

  "name":"tom",

  "age":4

} ;

json对象的表述方式如下:

{

  "name":"tom",

  "age":4

}

json对象的属性名必须为双引,属性名可以为json简单值,也可以为json复杂值

两者之间的区别:

(1)json对象的属性名任何时候都必须加双引号;但js对象的属性名可以为双引、单引或不加引号

(2)json对象没有末尾的分号

(3)json中没有变量的概念,即没有变量声明,即var obj={"name":"tom","age":4} 是一个js对象;{"name":"tom","age":4} 才是json对象形式

三、JSON数组采用的就是js的数组字面量形式

var arr = [25,"hello",true]; ------------->js数组

[25,"hello",true] ----------------------->json数组

一般把数组和对象结合起来来构成复杂的数据集合

注意:json数组中也没有变量和末尾的分号

JSON方法:

(1)JSON.stringify();  把js对象序列化为json字符串

(2)JSON.parse(); 把json字符串解析为原生js值

如:var person = {name:"tom",age:23,skill:["singing","dancing"]};

var str = JSON.stringify(person); ------------> "{"name":"tom","age":23,"skill":["singing","dancing"]}"

var obj = JSON.parse(str); --------------------> {name:"tom",age:23,skill:["singing","dancing"]}

注意:json是用来传输的,传输过来的json对象和json数组,经变量接收后,就可以当成正常的js对象和js数组来使用,

json的序列化和解析方法使用在json字符串和原生js之间

上一篇:css中zoom:1以及z-index的作用


下一篇:DDD事件总线