js中json對象和字符串的理解及相互轉(zhuǎn)化操作實(shí)現(xiàn)方法
本文實(shí)例講述了js中json對象和字符串的理解及相互轉(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對象和字符串是不一樣的!
字符串就是字符串,json對象是一個(gè)對象。
雖然其內(nèi)容都是我們看到的json格式,但是兩者是有區(qū)別的。
我們想取出其中某個(gè)屬性的值,其實(shí)是對json對象操作的(你能取出對象的屬性值,但不能取出字符串的屬性值,字符串沒屬性。)。
所以如果你拿到的是對象,那你就直接可以取值了,
例如jsonob.jsonv[1].j。
如果你拿到的是字符串,那你必須先轉(zhuǎn)化成對象才可以取值,
字符串轉(zhuǎn)對象有幾種方法,js本身自帶的是var str2=eval('('+str+')');
這里的str2就是對象了。如果你引入了json.js文件,還可以使用其中的
方法,這些都已經(jīng)封裝好了。
總結(jié):json只是一種格式。符合這種格式的可以是json對象,也可以是字符串。
要取屬性值只能從對象里取。所以需要兩者的轉(zhuǎn)化。
js自帶的轉(zhuǎn)化方法:
字符串轉(zhuǎn)成json對象:
var str="{'strv':[{'a':'a11'}, {'a':'b222'} ]}";//字符串
var jsonObject=eval('('+str+')');//json對象
json對象轉(zhuǎn)成字符串:
js本身沒有這樣的方法,你需要自己寫這樣的方法,才能轉(zhuǎn)化。
從上可知,js本身只可以將字符串轉(zhuǎn)成json對象,
但不可以將json對象轉(zhuǎn)成字符串。其實(shí)我們可以用
json.js里的方法,而且更簡單。這時(shí)你要引入json.js文件。
json.js里的方法:
字符串轉(zhuǎn)成json對象:
var str="{'strv':[{'a':'a11'}, {'a':'b222'} ]}";//字符串
轉(zhuǎn)成json對象方法1: var myJSONObject1=str.parseJSON();
轉(zhuǎn)成json對象方法2: var myJSONObject2=JSON.parse(str);
json對象轉(zhuǎn)成字符串:
var jsonob={'jsonv':[ {'j':'j111'}, {'j':'j222'} ]};//json對象
轉(zhuǎn)成字符串方法1:var mystr1=jsonob.toJSONString();
轉(zhuǎn)成字符串方法2: var mystr2=JSON.stringify(jsonob);
*/
</script>
通過實(shí)驗(yàn),我們應(yīng)該明白,json其實(shí)是一種格式,js本身支持這種格式,
所以你不需要引入json.js就可以使用json對象。我們一般會引入json.js因?yàn)檫@里面封裝了json對象和字符串轉(zhuǎn)化的方法,方便我們使用(當(dāng)然還有其他方法)。
通過本例我們更好地理解json對象和字符串之間的區(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é)》
希望本文所述對大家JavaScript程序設(shè)計(jì)有所幫助。
- Json對象與Json字符串互轉(zhuǎn)(4種轉(zhuǎn)換方式)
- js 將json字符串轉(zhuǎn)換為json對象的方法解析
- 解析JSON對象與字符串之間的相互轉(zhuǎn)換
- jQuery怎么解析Json字符串(Json格式/Json對象)
- JS對象與json字符串格式轉(zhuǎn)換實(shí)例
- js中把JSON字符串轉(zhuǎn)換成JSON對象最好的方法
- jquery解析json格式數(shù)據(jù)的方法(對象、字符串)
- json對象轉(zhuǎn)字符串如何實(shí)現(xiàn)
- 自定義實(shí)現(xiàn)Json字符串向C#對象轉(zhuǎn)變的方法
- 使用JSON.parse將json字符串轉(zhuǎn)換成json對象的時(shí)候會出錯(cuò)
相關(guān)文章
IE圖片緩存document.execCommand("BackgroundImageCache",
IE6下設(shè)置背景圖片是不會被真正cache住的,就算服務(wù)器做了cache,如果想cache住只能2011-03-03
在JavaScript中遭遇級聯(lián)表達(dá)式陷阱
在JavaScript中遭遇級聯(lián)表達(dá)式陷阱...2007-03-03
JS實(shí)現(xiàn)支持Ajax驗(yàn)證的表單插件
這篇文章主要為大家詳細(xì)介紹了JS實(shí)現(xiàn)支持Ajax驗(yàn)證的表單插件,感興趣的小伙伴們可以參考一下2016-03-03
創(chuàng)建一個(gè)復(fù)制UBB軟件信息的鏈接或按鈕的js代碼
2008-01-01
JS事件處理機(jī)制及事件代理(事件委托)實(shí)例詳解
這篇文章主要介紹了JS事件處理機(jī)制及事件代理,結(jié)合實(shí)例形式詳細(xì)分析了JS時(shí)間處理機(jī)制與事件代理功能、用法及相關(guān)使用技巧,需要的朋友可以參考下2023-06-06
echarts學(xué)習(xí)筆記之箱線圖的分析與繪制詳解
最近在學(xué)習(xí)echarts,所以下面這篇文章主要給大家介紹了關(guān)于echarts學(xué)習(xí)筆記之箱線圖的分析與繪制的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),需要的朋友可以參考借鑒,下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧。2017-11-11
JavaScript中從setTimeout與setInterval到AJAX異步
這篇文章主要介紹了JavaScript中從setTimeout與setInterval到AJAX異步,非常不錯(cuò),具有參考借鑒價(jià)值,需要的朋友可以參考下2017-02-02

