JSON 簡介:
json 是JavaScript Object Notation的縮寫,它是一種數(shù)據(jù)交換格式。
在JSON出現(xiàn)之前,大家一直用XML來傳遞數(shù)據(jù)。因為XML是一種純文本格式,所以它適合在網(wǎng)絡上交換數(shù)據(jù)。XML本身不算復雜,但是,加上DTD、XSD、XPath、XSLT等一大堆復雜的規(guī)范以后,任何正常的軟件開發(fā)人員碰到XML都會感覺頭大了,最后大家發(fā)現(xiàn),即使你努力鉆研幾個月,也未必搞得清楚XML的規(guī)范。
終于,在2002年的一天,道格拉斯·克羅克福特(Douglas Crockford)同學為了拯救深陷水深火熱同時又被某幾個巨型軟件企業(yè)長期愚弄的軟件工程師,發(fā)明了JSON這種超輕量級的數(shù)據(jù)交換格式。
JSON模型:JSON必須是UTF-8字符集,且字符串必須是“”雙引號, object 的key也必須是雙引號“”
number:和JavaScript的number完全一致;
boolean:就是JavaScript的true或false;
string:就是JavaScript的string;
null:就是JavaScript的null;
array:就是JavaScript的Array表示方式——[];
object:就是JavaScript的{ ... }表示方式。
序列化:
var xiaoYao = {
name: '小姚',
age: 14,
gender: true,
height: 1.65,
grade: null,
'middle-school': '\"W3C\" Middle School',
skills: ['JavaScript', 'Java', 'Python', 'Lisp']
};
JSON.stringify(xiaoYao);
其結(jié)果就是:{
"name": "小姚",
"age": 14,
"gender": true,
"height": 1.65,
"grade": null,
"middle-school": "\"W3C\" Middle School",
"skills": ["JavaScript","Java","Python","Lisp"]
}
同樣我們也可以反序列化:拿到一個JSON格式的字符串,我們直接用JSON.parse()把它變成一個JavaScript對象: