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