前言:html
這裏是修真院前端小課堂,每篇分享文從前端
【背景介紹】【知識剖析】【常見問題】【解決方案】【編碼實戰】【擴展思考】【更多討論】【參考文獻】git
八個方面深度解析前端知識/技能,本篇分享的是:github
【 json是什麼,如何處理轉義?】json
你們好,我是IT修真院北京總院第21期的學員楊夢桐,後端
今天這篇文主要關於json是什麼,以及如何處理轉義。數組
數據傳輸是咱們在編寫代碼時常常遇到的一個場景。給數據一個統一的格式有利於咱們編寫和解析數據。json,是數據格式的一種,在與後端的數據交換中有較爲普遍的應用。瀏覽器
json是一種數據格式,全名JavaScript Object Notation (JavaScript 對象表示法),具備基於文本、輕量級、被普遍地用於數據交換的特色,也是一種傳遞對象的語法,對象能夠是name/value對,數組和其餘對象,具體展開,包含以下概念:服務器
json的常見問題以下函數
1.什麼是JSON對象?
a.符合json格式的js對象被簡稱爲json對象
b.JSON是一個提供了stringify和parse方法的內置對象
c.JSON.stringify()將js對象轉化爲符合json標準的字符串
d.JSON.parse()將符合json標準的字符串轉化爲js對象
2. json格式的對象與通常js對象語法上的區別
a.json格式的對象鍵名必須是加雙引號,屬性值只能是數值(10進制)、字符串(雙引號)、布爾值和null,也能夠是數組或者符合JSON要求的對象,不能是函數、NaN, Infinity(存放表示正無窮大的數值), -Infinity和undefined,最後一個屬性後面不能有逗號,前導0不能用,小數點後必須有數字
b.js對象鍵名可容許不加、加單引號、加雙引號,任意屬性值都可,最後一個屬性後面能夠有逗號,數值無限制
3. 什麼是json格式?
數據以鍵值對的形式存儲,和對象的格式有點像
ar person={name:"blabla"};
//一個普通的js對象
var obj2 = {"width":100,"height":200,"name":"blabla"};
// 可把這個稱作:JSON 格式的 JavaScript 對象
var str1 = '{"width":100,"height":200,"name":"blabla"}';
// 可把這個稱作:JSON 格式的字符串
var arr = [
{"width":100,"height":200,"name":"blabla"},
{"width":100,"height":200,"name":"blabla"},
{"width":100,"height":200,"name":"blabla"},
];
// 這個可叫JSON格式的數組,是JSON的稍複雜一點的形式
var str2='['+
'{"width":100,"height":200,"name":"blabla"},'+
'{"width":100,"height":200,"name":"blabla"},'+
'{"width":100,"height":200,"name":"blabla"},'+
']';
// 這個可叫稍複雜一點的 JSON 格式的字符串
擴展思考:由json字串生成json對象時的轉義問題:http://blog.csdn.net/robotech...
參考文獻:http://www.jb51.net/article/2...
json和xml做爲數據傳輸的格式分別有什麼優缺點:http://blog.csdn.net/tangtian...
ppt連接:https://ptteng.github.io/PPT/...
視頻連接:https://v.qq.com/x/page/s0527...
拓展問題:
json返回的是一串數據;而jsonp返回的是腳本代碼(包含一個函數調用),具體可參考http://www.cnblogs.com/iovec/...
擴展標記語言 (Extensible Markup Language, XML) ,用於標記電子文件使其具備結構性的標記語言,能夠用來標記數據、定義數據類型,是一種容許用戶對本身的標記語言進行定義的源語言。 XML使用DTD(document type definition)文檔類型定義來組織數據;格式統一,跨平臺和語言,早已成爲業界公認的標準。XML是標準通用標記語言 (SGML) 的子集,很是適合 Web 傳輸。XML 提供統一的方法來描述和交換獨立於應用程序或供應商的結構化數據。具體可參考https://baike.baidu.com/item/...
相較json,XML文件龐大,文件格式複雜,傳輸佔帶寬;服務器端和客戶端都須要花費大量代碼來解析XML,致使服務器端和客戶端代碼變得異常複雜且不易維護;客戶端不一樣瀏覽器之間解析XML的方式不一致,須要重複編寫不少代碼;服務器端和客戶端解析XML花費較多的資源和時間。可參考http://www.cnblogs.com/SanMao...