亚洲精品久久久中文字幕-亚洲精品久久片久久-亚洲精品久久青草-亚洲精品久久婷婷爱久久婷婷-亚洲精品久久午夜香蕉

您的位置:首頁技術文章
文章詳情頁

javascript解析json格式的數據方法詳解

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

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

首先,科普一下json。在json中,有兩種結構:對象和數組。

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

1. json字符串轉化為json對象

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

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

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

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

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

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

我的天,evel方法竟然會執行json字符串里的代碼!!

我們再看一下JSON.parse()方法:

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

現在知道怎么選擇了吧。

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

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

2.json對象轉化為json字符串

話不多說,先看代碼:

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

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

同樣,還有一個方法叫做obj.toJSONString()也可以將json對象轉化為json字符串,與 jsonStr.parseJSON()相對應。

3.json字符數組轉化為json數組

這個轉化和字符串轉對象是一樣的,只是操作json數組的方式與操作json對象的方式稍有不同而已。看一段代碼:

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

對于json數組,可以通過下標來進行訪問。由于它是一個數組,所以也可以通過for循環進行遍歷。

4.jquery解析json字符串

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

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

到此這篇關于javascript解析json格式的數據方法詳解的文章就介紹到這了,更多相關javascript解析json格式的數據內容請搜索好吧啦網以前的文章或繼續瀏覽下面的相關文章希望大家以后多多支持好吧啦網!

標簽: JavaScript
相關文章:
主站蜘蛛池模板: 精品视频麻豆网站 | 亚洲精品视 | 曰本人一级毛片免费完整视频 | 久久精品国产国产精品四凭 | 在线观看日本三级 | 国产成人精品久久二区二区 | 一级毛片不卡免费看老司机 | 久久久久久久国产精品毛片 | 99久久久精品免费观看国产 | 日本欧美中文字幕人在线 | 毛片毛片毛片毛片毛片怎么 | 不卡一级毛片免费高清 | 成人男女啪啪免费观看网站 | 亚洲精品一区二区 | 国产成人啪精品午夜在线观看 | 国产成人精品影视 | 亚洲二区在线 | 欧美性福利 | 婷婷五月色综合香五月 | 日韩久久网| 国产乱码精品一区二区三区四川 | 亚洲性综合网 | 在线观看免费播放网址成人 | 五月天丁香花婷婷视频网 | www日韩免费高清视频 | bt7086 福利二区 最新合集 | 中文字幕第99页 | 黄站无毒不卡秒播网站免费观看 | 97在线视| 黄色网日本| 亚洲国产成人精品不卡青青草原 | 亚洲欧美精品一区二区 | 欧美日批 | 看片在线观看 | 99热在线只有精品 | 国产亚洲欧美日本一二三本道 | 中国黄色网址大全 | 婷婷六月丁香午夜爱爱 | 久久青青草原精品国产不卡 | 一区二区免费播放 | 日本成人影院 |