国产成人精品久久免费动漫-国产成人精品天堂-国产成人精品区在线观看-国产成人精品日本-a级毛片无码免费真人-a级毛片毛片免费观看久潮喷

您的位置:首頁技術(shù)文章
文章詳情頁

javascript解析json格式的數(shù)據(jù)方法詳解

瀏覽:5日期:2023-10-18 13:57:50

JSON (JavaScript Object Notation)是一種簡(jiǎn)單的數(shù)據(jù)格式,比xml更輕巧。 它是 JavaScript 原生格式,這意味著在 JavaScript 中處理 JSON 數(shù)據(jù)不需要任何特殊的 API 或工具包。那么如何用JavaScript來解析json呢?

首先,科普一下json。在json中,有兩種結(jié)構(gòu):對(duì)象和數(shù)組。

一個(gè)對(duì)象以“{”(左括號(hào))開始,“}”(右括號(hào))結(jié)束。每個(gè)“名稱”后跟一個(gè)“:”(冒號(hào));“‘名稱/值’ 對(duì)”之間運(yùn)用 “,”(逗號(hào))分隔。 名稱用引號(hào)括起來;值如果是字符串則必須用括號(hào),數(shù)值型則不須要。例如:var o={“key”:”value”};數(shù)組是值(value)的有序集合。一個(gè)數(shù)組以“[”(左中括號(hào))開始,“]”(右中括號(hào))結(jié)束。值之間運(yùn)用 “,”(逗號(hào))分隔。var array = [{“name”:”tom”},{“name”:”jake”}];在數(shù)據(jù)傳輸流程中,json是以字符串的形式傳遞的,而JS操作的是JSON對(duì)象,所以,JSON對(duì)象和JSON字符串之間的相互轉(zhuǎn)換是關(guān)鍵。 json字符串:var str=’{“key”:”value”}’; json對(duì)象:var o={“key”:”value”};

1. json字符串轉(zhuǎn)化為json對(duì)象

可以通過JavaScript的eval()函數(shù)來進(jìn)行解析,代碼如下:

<script type='text/javascript'> var json = ’{'key':'value','jian':'zhi'}’; var obj = eval('(' + json + ')'); console.log(obj); //控制臺(tái)返回 Object console.log(obj.key); //控制臺(tái)返回 value console.log(obj.jian); //控制臺(tái)返回 zhi</script>

或者通過JSON.parse()方法來解析,代碼如下:

var json = ’{'key':'value','jian':'zhi'}’;var obj =JSON.parse(json);console.log(obj); //控制臺(tái)返回 Objectconsole.log(obj.key); //控制臺(tái)返回 valueconsole.log(obj.jian); //控制臺(tái)返回 zhi

既然這兩種方法都可以解析json字符串,那么我們究竟使用哪種呢?在這之前,我們先來做一個(gè)測(cè)試:

var value = 1;var jsonstr = ’{'name':'jifeng','company':'taobao','value':++value}’;var json1 = eval(’(’+jsonstr+’)’);console.log(json1); //控制臺(tái)返回 Objectconsole.log(’value: ’+ value); //控制臺(tái)返回 value 2

我的天,evel方法竟然會(huì)執(zhí)行json字符串里的代碼!!

我們?cè)倏匆幌翵SON.parse()方法:

var value = 1;var jsonstr = ’{'name':'jifeng','company':'taobao','value':++value}’;var json2 = JSON.parse(jsonstr);console.log(json2);console.log(’value: ’+ value); //控制臺(tái)報(bào)錯(cuò)Unexpected token + in JSON at position

現(xiàn)在知道怎么選擇了吧。

eval()方法是極其不安全的,尤其是在解析第三方數(shù)據(jù)的時(shí)候,萬一第三方數(shù)據(jù)給你加點(diǎn)惡意代碼什么的你不就完了么?所以,JSON.parse()才是正確的選擇,當(dāng)然,有些瀏覽器不支持這個(gè)方法, 可以到https://github.com/douglascrockford/JSON-js/blob/master/json2.js 下載json2.js,添加到你的hlml中就可以了。

除此之外還有一個(gè) jsonStr.parseJSON()的方法,也可以將json字符串轉(zhuǎn)化為json對(duì)象,同樣需要json2.js包的支持。

2.json對(duì)象轉(zhuǎn)化為json字符串

話不多說,先看代碼:

var json = ’{'key':'value','jian':'zhi'}’;var obj =JSON.parse(json);var str=JSON.stringify(obj);console.log(str); //控制臺(tái)返回 {'key':'value','jian':'zhi'}

這里我們用到了和JSON.parse(str) 相對(duì)應(yīng)的方法JSON.stringify(obj)。

同樣,還有一個(gè)方法叫做obj.toJSONString()也可以將json對(duì)象轉(zhuǎn)化為json字符串,與 jsonStr.parseJSON()相對(duì)應(yīng)。

3.json字符數(shù)組轉(zhuǎn)化為json數(shù)組

這個(gè)轉(zhuǎn)化和字符串轉(zhuǎn)對(duì)象是一樣的,只是操作json數(shù)組的方式與操作json對(duì)象的方式稍有不同而已。看一段代碼:

var arrayStr = ’[{'name':'tom','age':'18'},{'name':'jake','age':'20'}]’;var arrayObj =JSON.parse(arrayStr);console.log(arrayObj); //控制臺(tái)返回 Array[2]console.log(arrayObj[0]); //控制臺(tái)返回 Objectconsole.log(arrayObj[0].name); //控制臺(tái)返回 tomconsole.log(arrayObj[1].age); //控制臺(tái)返回 20

對(duì)于json數(shù)組,可以通過下標(biāo)來進(jìn)行訪問。由于它是一個(gè)數(shù)組,所以也可以通過for循環(huán)進(jìn)行遍歷。

4.jquery解析json字符串

簡(jiǎn)單地提一下jquery。在使用jquery的ajax功能時(shí),有一個(gè)dataType屬性,可以將這個(gè)屬性設(shè)置為json或者利用$.getJSON()方法獲得服務(wù)器返回的值,這個(gè)返回值就是一個(gè)json對(duì)象,所以就不需要再做轉(zhuǎn)化。

當(dāng)然,jquery也提供了轉(zhuǎn)換的函數(shù) $.parseJSON(string); 這個(gè)和之前講的JSON.parse()得用法是一樣的,具體怎么使用,看個(gè)人喜好。

到此這篇關(guān)于javascript解析json格式的數(shù)據(jù)方法詳解的文章就介紹到這了,更多相關(guān)javascript解析json格式的數(shù)據(jù)內(nèi)容請(qǐng)搜索好吧啦網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持好吧啦網(wǎng)!

標(biāo)簽: JavaScript
相關(guān)文章:
主站蜘蛛池模板: 日本黄色美女网站 | 日韩最新中文字幕 | 亚洲专区在线 | 欧美一级特黄aa大片在线观看免费 | 2020国产微拍精品一区二区 | 成人做爰视频www | 各种偷拍盗摄视频在线观看 | 免费观看一级成人毛片软件 | 成人午夜视频在线观 | 中文字幕一区二区三区有限公司 | 国产成人精品福利网站在线观看 | 韩国巨胸女三级视频网 | 欧美一区二区在线观看免费网站 | 在线视频一区二区三区四区 | 国产一区在线观看免费 | 成人久久18免费网站入口 | 国产一区在线播放 | 看一级特黄a大片国产 | 一级毛片免费不卡在线 | 高清欧美不卡一区二区三区 | 国产成人精品高清不卡在线 | 欧美视频一区在线观看 | 免费看片aⅴ免费大片 | 4tube高清性欧美 | 亚洲成在人线免费视频 | 在线观看视频中文字幕 | 欧美日韩国产一区二区三区在线观看 | 国产午夜三级 | 思99re久久这里只有精品首页 | 国产亚洲欧美日韩在线观看不卡 | 日韩特级黄色片 | 成人交性视频免费看 | 亚洲2020天天堂在线观看 | 91国内精品久久久久怡红院 | 免费a级毛片大学生免费观看 | 足恋玩丝袜脚视频免费网站 | 三级网址免费 | 男女视频免费 | 免费香蕉成视频成人网 | 日韩欧美一区二区三区在线 | 国产精品视频免费观看调教网 |