js中json對(duì)象和字符串的理解及相互轉(zhuǎn)化操作實(shí)現(xiàn)方法
本文實(shí)例講述了js中json對(duì)象和字符串的理解及相互轉(zhuǎn)化操作實(shí)現(xiàn)方法。分享給大家供大家參考,具體如下:
<script> var str="{'strv':["+ "{'a':'a11'},"+ " {'a':'b222'}"+ " ]}"; //如果放在一行更清楚:var str="{'strv':[{'a':'a11'}, {'a':'b222'} ]}"; var str2=eval('('+str+')'); // alert(str2.strv[1].a); var jsonob={'jsonv':[ {'j':'j111'}, {'j':'j222'} ]}; //如果放在一行更清楚:var jsonob={'jsonv':[ {'j':'j111'}, {'j':'j222'} ]}; // alert(jsonob.jsonv[1].j); /* var str="{'strv':[{'a':'a11'}, {'a':'b222'} ]}"; var jsonob={'jsonv':[ {'j':'j111'}, {'j':'j222'} ]}; 這樣我們可以看出json對(duì)象和字符串是不一樣的! 字符串就是字符串,json對(duì)象是一個(gè)對(duì)象。 雖然其內(nèi)容都是我們看到的json格式,但是兩者是有區(qū)別的。 我們想取出其中某個(gè)屬性的值,其實(shí)是對(duì)json對(duì)象操作的(你能取出對(duì)象的屬性值,但不能取出字符串的屬性值,字符串沒(méi)屬性。)。 所以如果你拿到的是對(duì)象,那你就直接可以取值了, 例如jsonob.jsonv[1].j。 如果你拿到的是字符串,那你必須先轉(zhuǎn)化成對(duì)象才可以取值, 字符串轉(zhuǎn)對(duì)象有幾種方法,js本身自帶的是var str2=eval('('+str+')'); 這里的str2就是對(duì)象了。如果你引入了json.js文件,還可以使用其中的 方法,這些都已經(jīng)封裝好了。 總結(jié):json只是一種格式。符合這種格式的可以是json對(duì)象,也可以是字符串。 要取屬性值只能從對(duì)象里取。所以需要兩者的轉(zhuǎn)化。 js自帶的轉(zhuǎn)化方法: 字符串轉(zhuǎn)成json對(duì)象: var str="{'strv':[{'a':'a11'}, {'a':'b222'} ]}";//字符串 var jsonObject=eval('('+str+')');//json對(duì)象 json對(duì)象轉(zhuǎn)成字符串: js本身沒(méi)有這樣的方法,你需要自己寫這樣的方法,才能轉(zhuǎn)化。 從上可知,js本身只可以將字符串轉(zhuǎn)成json對(duì)象, 但不可以將json對(duì)象轉(zhuǎn)成字符串。其實(shí)我們可以用 json.js里的方法,而且更簡(jiǎn)單。這時(shí)你要引入json.js文件。 json.js里的方法: 字符串轉(zhuǎn)成json對(duì)象: var str="{'strv':[{'a':'a11'}, {'a':'b222'} ]}";//字符串 轉(zhuǎn)成json對(duì)象方法1: var myJSONObject1=str.parseJSON(); 轉(zhuǎn)成json對(duì)象方法2: var myJSONObject2=JSON.parse(str); json對(duì)象轉(zhuǎn)成字符串: var jsonob={'jsonv':[ {'j':'j111'}, {'j':'j222'} ]};//json對(duì)象 轉(zhuǎn)成字符串方法1:var mystr1=jsonob.toJSONString(); 轉(zhuǎn)成字符串方法2: var mystr2=JSON.stringify(jsonob); */ </script>
通過(guò)實(shí)驗(yàn),我們應(yīng)該明白,json其實(shí)是一種格式,js本身支持這種格式,
所以你不需要引入json.js就可以使用json對(duì)象。我們一般會(huì)引入json.js因?yàn)檫@里面封裝了json對(duì)象和字符串轉(zhuǎn)化的方法,方便我們使用(當(dāng)然還有其他方法)。
通過(guò)本例我們更好地理解json對(duì)象和字符串之間的區(qū)別。
PS:關(guān)于json操作,這里再為大家推薦幾款比較實(shí)用的json在線工具供大家參考使用:
在線JSON代碼檢驗(yàn)、檢驗(yàn)、美化、格式化工具:
http://tools.jb51.net/code/json
JSON在線格式化工具:
http://tools.jb51.net/code/jsonformat
在線XML/JSON互相轉(zhuǎn)換工具:
http://tools.jb51.net/code/xmljson
json代碼在線格式化/美化/壓縮/編輯/轉(zhuǎn)換工具:
http://tools.jb51.net/code/jsoncodeformat
在線json壓縮/轉(zhuǎn)義工具:
http://tools.jb51.net/code/json_yasuo_trans
更多關(guān)于JavaScript相關(guān)內(nèi)容可查看本站專題:《JavaScript中json操作技巧總結(jié)》、《JavaScript查找算法技巧總結(jié)》、《JavaScript錯(cuò)誤與調(diào)試技巧總結(jié)》、《JavaScript數(shù)據(jù)結(jié)構(gòu)與算法技巧總結(jié)》、《JavaScript遍歷算法與技巧總結(jié)》及《JavaScript數(shù)學(xué)運(yùn)算用法總結(jié)》
希望本文所述對(duì)大家JavaScript程序設(shè)計(jì)有所幫助。
- Json對(duì)象與Json字符串互轉(zhuǎn)(4種轉(zhuǎn)換方式)
- js 將json字符串轉(zhuǎn)換為json對(duì)象的方法解析
- 解析JSON對(duì)象與字符串之間的相互轉(zhuǎn)換
- jQuery怎么解析Json字符串(Json格式/Json對(duì)象)
- JS對(duì)象與json字符串格式轉(zhuǎn)換實(shí)例
- js中把JSON字符串轉(zhuǎn)換成JSON對(duì)象最好的方法
- jquery解析json格式數(shù)據(jù)的方法(對(duì)象、字符串)
- json對(duì)象轉(zhuǎn)字符串如何實(shí)現(xiàn)
- 自定義實(shí)現(xiàn)Json字符串向C#對(duì)象轉(zhuǎn)變的方法
- 使用JSON.parse將json字符串轉(zhuǎn)換成json對(duì)象的時(shí)候會(huì)出錯(cuò)
相關(guān)文章
JavaScript實(shí)現(xiàn)廣告的關(guān)閉與顯示效果實(shí)例
這篇文章主要介紹了JavaScript實(shí)現(xiàn)廣告的關(guān)閉與顯示效果,涉及javascript廣告窗口的關(guān)閉與顯示效果實(shí)現(xiàn)技巧,需要的朋友可以參考下2015-07-07實(shí)例學(xué)習(xí)JavaScript讀取和寫入cookie
本篇內(nèi)容主要給大家通過(guò)實(shí)例講述了JavaScript讀取和寫入cookie的相關(guān)知識(shí)點(diǎn),有這方面需要的朋友參考下吧。2018-01-01前端頁(yè)面在移動(dòng)設(shè)備上顯示不正常的原因及解決方案
當(dāng)頁(yè)面在移動(dòng)設(shè)備上顯示不正常時(shí),通常是由于布局、樣式或響應(yīng)式設(shè)計(jì)設(shè)置不當(dāng)所引起的,移動(dòng)設(shè)備的屏幕尺寸、分辨率和交互方式與桌面設(shè)備有很大的不同,本文將詳細(xì)介紹常見(jiàn)的導(dǎo)致頁(yè)面在移動(dòng)設(shè)備上顯示不正常的原因,以及如何解決這些問(wèn)題,需要的朋友可以參考下2024-09-09弱類型語(yǔ)言javascript開(kāi)發(fā)中的一些坑實(shí)例小結(jié)【變量、函數(shù)、數(shù)組、對(duì)象、作用域等】
這篇文章主要介紹了弱類型語(yǔ)言javascript開(kāi)發(fā)中的一些坑,結(jié)合實(shí)例形式總結(jié)分析了javascript開(kāi)發(fā)中關(guān)于變量、函數(shù)、數(shù)組、對(duì)象、作用域等相關(guān)知識(shí)點(diǎn)常見(jiàn)易錯(cuò)問(wèn)題,需要的朋友可以參考下2019-08-08Javascript模擬scroll滾動(dòng)效果腳本
項(xiàng)目需要寫了一段模擬Scroll滾動(dòng)代碼,分享的同時(shí),我有些疑問(wèn),希望大家能幫忙解決,代碼如下2008-09-09JavaScript EasyPager 分頁(yè)函數(shù)
好久不寫js,手都有點(diǎn)生了。寫個(gè)小東西熱手。2011-05-05