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