json資料是一種輕量級的資料交換格式,它基於一個子集,採用完全獨立於程式語言的文字格式來儲存和表示資料。簡潔和清晰的層次結構使得 JSON 成為理想的資料交換語言。
JSON資料是:
JSON (JavaScript Object Notation, JS 物件標記)是一種輕量級的資料交換格式。它基於 ECMAScript (w3c制定的js規範)的一個子集,採用完全獨立於程式語言的文字格式來儲存和表示資料。簡潔和清晰的層次結構使得 JSON 成為理想的資料交換語言。易於人閱讀和編寫,同時也易於機器解析和生成,並有效地提升網路傳輸效率。 ——百度百科
資料傳輸是我們在敲程式碼時,經常遇到的一個場景,前後端互動。給資料一個統一的格式有利於我們編寫和解析資料。
json,是一種資料格式,在與後端的資料互動中有較為廣泛的應用。
相關學習推薦:javascript影片教學
#JSON的誕生
JSON是(JavaScript Object Notation, JS 物件標記),它是一種資料交換格式。在JSON出現之前,大家一直都用XML傳遞資料。因為XML是一種純文字格式,所以它適合在網路上交換資料。 XML本身不算複雜,但是,加上DTD、XSD、XPath、XSLT等一大堆複雜的規範以後,任何正常的軟體開發人員碰到XML都會感覺頭大了,最後大家發現,即使你努力鑽研幾個月,也未必搞清楚XML的規範。
終於,在2002年的一天,道格拉斯·克羅克福特(DouglasCrockford)同學為了拯救深陷水深火熱同時又被某幾個巨型軟體企業長期愚弄的軟體工程師,發明了JSON這種超輕量級的資料交換格式。
由於JSON非常簡單,很快就風靡Web世界,並且成為ECMA標準。幾乎所有程式語言都有解析JSON的函式庫,而在JavaScript中,我們可以直接使用JSON,因為JavaScript內建了JSON的解析。把任何JavaScript物件變成JSON,就是把這個物件序列化成一個JSON格式的字串,這樣才能夠透過網路傳遞給其他電腦。如果我們收到一個JSON格式的字串,只要要把它反序列化成一個JavaScript對象,就可以在JavaScript中直接使用這個對象了。
轉義
我們在呼叫 jsonp 介面或呼叫js檔案的時候,由於檔案編碼不同會導致出現亂碼的問題。如果你的文件出現了非英文字符,如果調用時文件編碼不一致,同樣會出現亂碼情況。
這就是為什麼要資料統一格式的原因。
JSON 是適用於Ajax 應用程式的有效格式,原因是它使JavaScript 物件和字串值之間得以快速轉換JSON是一種傳遞物件的語法
JSON是提供了stringify和parse方法的內建物件
stringify將js物件轉換為符合json標準的字串
#parse將符合json標準的字串轉換為js物件
#JSON對值的類型和格式有嚴格的規定
複合型別的值只能是數組或對象,不能是函數、正規表示式對象、日期對象。
簡單類型的值只有四種:字串、數值(必須以十進位表示)、布林值和null(不能使用NaN, Infinity, -Infinity和undefined)。
字串必須使用雙引號表示,不能使用單引號。
物件的鍵名必須放在雙引號裡面。
陣列或物件最後一個成員的後面,不能加逗號。
PS: 要注意的是,空數組和空物件都是合格的JSON值,null本身也是一個合格的JSON值。
JSON 的語法規則
JSON 的語法規則十分簡單,可稱得上“優雅完美”,總結起來有:
陣列(Array)用方括號(“[]”)表示。
物件(Object)以大括號(”{}”)表示。
名稱/值對(name/value)組合成陣列和物件。
名稱(name)置於雙引號中,值(value)有字串、數值、布林值、null、物件和陣列。
並列的資料間以逗號(「,」)分隔
實例
######### JSON 資料的書寫格式是:名稱/值對。 ######名稱/值對組合中的名稱寫在前面(在雙引號中),值對寫在後面,中間用冒號隔開,###The value can be: number (integer or floating point number), string (in double quotes), Boolean value (true or false), array (in square brackets), object (in curly brackets), null
varjson= {"password":123456,"name":"myname","Booleans":true,"Array":[x,y,z],"object":{}}
Or nested use
Escape overview
Why do you need to escape? In js we use js objects for processing, but when exchanging data with the backend, we send strings in the specified json format, so when sending or receiving data to the backend, we need to escape
{name:"myname",password:123456} "{"name":"myname","password":123456}"
Convert json string to js object and call parse method:
js object = JSON.parse(json string);
js object to json string, call the stringify method:
json string = JSON.stringify(js object);
Related recommendations: Programming video course
以上是json數據是什麼的詳細內容。更多資訊請關注PHP中文網其他相關文章!