欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

对JSON的理解

程序员文章站 2022-03-18 14:37:27
JSON语法: JSON是一种结构化数据,它是一种数据格式 JSON可以概括为三种类型:简单值、对象、数组 注意:JSON不支持变量、函数和对象实例 一、JSON简单值 包括字符串、数值、布尔值、和null(json不支持js中的undefined) 例如: 5 >json数值; "hello" > ......

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之间