JSON與JS對象的區(qū)別與對比
JSON是什么?(JSON和JavaScript對象有什么區(qū)別?)如何把JS對象轉(zhuǎn)化為JSON字符串,又如何把JSON字符串轉(zhuǎn)化為JavaScript對象?
JSON (JavaScript Object Notation)一種簡單的數(shù)據(jù)格式,比xml更輕巧。 JSON 是 JavaScript 原生格式,這意味著在JavaScript 中處理 JSON 數(shù)據(jù)不需要任何特殊的 API 或工具包。JSON的規(guī)則很簡單: 對象是一個無序的“名稱/值”對集合。一個對象以“{”(左括號)開始,“}”(右括號)結(jié)束。每個“名稱”后跟一個“:”(冒號);“名稱/值”對之間使用“,”(逗號)分隔。
它是一種嚴(yán)格的js對象的格式,JSON的屬性名必須有雙引號,如果值是字符串,也必須是雙引號;
JSON只是一種數(shù)據(jù)格式(或者叫數(shù)據(jù)形式);
<script> var obj2={};//這只是JS對象 var obj3={width:100,height:200};/*這跟JSON就更不沾邊了,只是JS的 對象 */ var obj4={'width':100,'height':200};/*這跟JSON就更不沾邊了,只是JS的對象 */ var obj5={"width":100,"height":200,"name":"rose"}; /*我們可以把這個稱做:JSON格式的JavaScript對象 */ var str1='{"width":100,"height":200,"name":"rose"}';/*我們可以把這個稱做:JSON格式的字符串 */ var a=[ {"width":100,"height":200,"name":"rose"}, {"width":100,"height":200,"name":"rose"}, {"width":100,"height":200,"name":"rose"}, ]; /*這個叫JSON格式的數(shù)組,是JSON的稍復(fù)雜一點(diǎn)的形式 */ var str2='['+ '{"width":100,"height":200,"name":"rose"},'+ '{"width":100,"height":200,"name":"rose"},'+ '{"width":100,"height":200,"name":"rose"},'+ ']' ; /* 這個叫稍復(fù)雜一點(diǎn)的JSON格式的字符串 */ </script>
JSON和JS對象區(qū)別對比表
區(qū)別 |
Json |
Javascript對象 |
含義 |
僅僅是一種數(shù)據(jù)格式 |
表示類的實(shí)例 |
傳輸 |
可以跨平臺數(shù)據(jù)傳輸,速度快 |
不能傳輸 |
表現(xiàn) |
1,鍵值對方式,鍵必須加雙引號 2,值不能是方法函數(shù),不能是undefined/NaN |
1,鍵值對方式,鍵不加引號 2,值可以是函數(shù)、對象、字符串、數(shù)字、boolean 等 |
相互轉(zhuǎn)換 |
Json轉(zhuǎn)化為js對象: 1,JSON.parse(jsonstring); 2,Jsobj=eval("("+jsonstring+")"); (兼容所有瀏覽器,但不安全,會執(zhí)行json里面的表達(dá)式?) |
Js對象轉(zhuǎn)換為Json: JSON.stringify(jsobj);(不兼容ie7) |
其他 |
調(diào)用json官網(wǎng)的js,實(shí)現(xiàn)parse 和 stringify 在各個瀏覽器的兼容: https://github.com/douglascrockford/JSON-js/blob/master/json2.js |
總而言之你可以理解為JSON是JS下的一種數(shù)據(jù)格式,他從屬于JS,并且在處理JSON數(shù)據(jù)時可直接使用JS內(nèi)置API
相關(guān)文章
JSON stringify及parse方法實(shí)現(xiàn)數(shù)據(jù)深拷貝
這篇文章主要為大家介紹了JSON.stringify遞歸及JSON.parse有限狀態(tài)自動機(jī)實(shí)現(xiàn)示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2022-08-08JavaScript面試數(shù)組index和對象key問題詳解
這篇文章主要為大家介紹了JavaScript面試數(shù)組index和對象key問題詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2022-12-12微信小程序開發(fā)之相冊選擇和拍照詳解及實(shí)例代碼
這篇文章主要介紹了微信小程序開發(fā)之相冊選擇和拍照詳解及實(shí)例代碼的相關(guān)資料,需要的朋友可以參考下2017-02-02axios?攔截器管理類鏈?zhǔn)秸{(diào)用手寫實(shí)現(xiàn)及原理剖析
這篇文章主要為大家介紹了axios?攔截器管理類鏈?zhǔn)秸{(diào)用手寫實(shí)現(xiàn)及原理剖析,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2022-08-08JavaScript 中有了Object 為什么還需要 Map 呢
Map 是用于存儲鍵值的,而 JavaScript 中對象也是由鍵值對組成的,那么 Map 存在的意義是什么呢?下面文章小編就來向大家詳細(xì)介紹吧,需要的朋友可以參考下2021-09-09前端加密cryptojs與JSEncrypt使實(shí)例詳解
這篇文章主要為大家介紹了前端加密cryptojs與JSEncrypt使實(shí)例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2022-08-08