国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > JavaScript > 正文

JavaScript遍歷Json串瀏覽器輸出的結果不統(tǒng)一問題

2019-11-20 08:36:13
字體:
供稿:網(wǎng)友

沒有介紹正文之前先給大家說下json是什么。

JSON(JavaScript Object Notation) 是一種輕量級的數(shù)據(jù)交換格式,我們稱之為JavaScript對象表示法。使用JSON進行數(shù)據(jù)傳輸?shù)膬?yōu)勢之一是JSON實際上就是JavaScript。它基于ECMAScript第3版中JavaScript對象字面量語法子集的一種文本格式。這表示可以使用responseText從服務器中檢索JSON數(shù)據(jù),然后再使用JavaScript的eval()方法將JSON字符串轉(zhuǎn)換成JavaScript對象,那么,使用附加JavaScript就可以很地從該對象中提取數(shù)據(jù),而不需要處理DOM。

我們在做項目的時候經(jīng)常會用到javascript的json。

首先說一下javascript的json串是什么,json串屬于javascript的一個對象,有鍵和值對應的對象。

一般的格式是:

a = { a1 : 1,a2 : 'abc',a3 : 'abc',a4 : [1,2,3],a5 : function(){console.log(12)}};

我們讀取這個json 的方法是通過for in 循環(huán)來遍歷;

使用json串的好處是可以事先把數(shù)據(jù)庫中的數(shù)據(jù)一次性的讀取出來存成json的形式,然后通過javascript來讀取里邊的屬于,這樣可以大大減少對服務器的請求次數(shù),增加了前臺頁面的加載效率 。

我們在遍歷json的時候會遇到許多問題,我今天遇到的問題是在我們把json串的鍵值寫成數(shù)字的情況下,在主流瀏覽器遍歷的時候不會按照我們輸出的json的結構先后輸出,而是按照數(shù)字的從小到大順序輸出。但是ie8以下瀏覽器會按照我們輸出的順序輸出。

例如:

a = { '1' : 1,'5' : function(){console.log(12)},'2' : 'abc','4' : [1,2,3],'3' : {'5' : 'abc', '6' : 'bcd'},};

通過for in循環(huán)

for(var i in a){console.log(a[i]);}

chrome,firefox等瀏覽器輸出:1,abc,Object { 5="abc", 6="bcd"},[1, 2, 3],function();

ie8以及以下瀏覽器:1,function(),abc,[1, 2, 3],Object { 5="abc", 6="bcd"};

解決這樣的問題有兩種:

第一:就是把數(shù)字的鍵值改成字符串形式的包括字母或者下劃線;

第二 :就是解決ie的兼容性,通過先遍歷json然后把鍵值存入一個數(shù)組中,然后再通過數(shù)組排序來循環(huán)數(shù)組取json中的數(shù)據(jù)。

具體代碼:

var arr = [],sortNumber = function (a,b){return a - b;};for(var i in a){arr[arr.length] = a[i];arr.sort(sortNumber);for(var x = 0; x < arr.length; x++) {console.log(a[arr[x]]);}

瀏覽器讀取的數(shù)據(jù)就會保持一致了,有個缺點就是這個也不會按照我們輸出的json格式輸出,只是解決了瀏覽器的兼容問題。

以上所述是小編給大家介紹的JavaScript遍歷Json串瀏覽器輸出的結果不統(tǒng)一問題,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回復大家的。在此也非常感謝大家對武林網(wǎng)網(wǎng)站的支持!

發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
主站蜘蛛池模板: 太原市| 蓬莱市| 宜昌市| 敖汉旗| 垫江县| 个旧市| 泗水县| 凌海市| 噶尔县| 含山县| 石渠县| 洛南县| 肥城市| 嘉义市| 电白县| 新巴尔虎右旗| 酒泉市| 晋江市| 永胜县| 盖州市| 镇原县| 高平市| 福海县| 宁阳县| 呼玛县| 大城县| 乾安县| 正安县| 溧水县| 宣汉县| 崇明县| 阳新县| 杂多县| 哈尔滨市| 澳门| 隆德县| 抚远县| 余姚市| 奉化市| 钟山县| 温州市|