JSON遍歷方法

2022-02-26 08:29:36 字數 1124 閱讀 9483

json陣列有長度json.abc.length,如果單純是json格式,那麼不能直接使用json.length方式獲取長度,而應該使用其他方法。

最近在修改乙個html頁面的js的時候遍歷json物件,卻怎麼也除錯不通過。怪這個html網頁不知道用了什麼方法禁止了js錯誤提示,剛開始的時候不知道有這個問題,用chrome的開發人員工具都沒發現錯誤,就是在獲取 json.length的時候總是undefined,所以就以為自己定義的json方法不對。折騰了乙個晚上一點進展都沒有,頭都整暈了,太晚,最後失望地洗洗睡了。

第二天晚上就是不甘心這個小問題能難倒我,於是靜下心來仔細查原因。自己新建乙個空的html檔案在其中測試,發現json物件根本沒有length屬性,在搜尋引擎查詢也沒有比較權威的參考文件提到json有這個屬性。部落格也很少有提到 json.length 的。但是奇怪的是我明明記得json有length,我還用過,程式沒錯,正確執行。

那是怎麼回事呢?最後看某部落格一篇文章的時候回想起以前程式設計的細節,記得以前的json的子物件是個陣列而這次的不是,這下終於恍然大悟了。

以前我使用json的這樣的結構:

var json1=,]};
遍歷的方法是:

for(var i=0;i這裡的json1.abc是乙個陣列,陣列是由2個子json組成的,陣列是有length屬性的,所以說能工作。

而我這一次的json是這樣的:

var json2=;

而json本身沒有length屬性,所以用length屬性自然會出錯:

for(var i=0;i那麼要遍歷這樣的json怎麼辦呢?這樣做:

for(var js2 in json2)

既然json沒有length屬性,如果要知道他的長度怎麼辦呢?很簡單,把上面的遍歷改一下就是了:

var jslength=0;

for(var js2 in json2)

把這段**寫成乙個方法,以後呼叫就行了:

function getjsonlength(jsondata)

return jsonlength;

}

學習計算機程式設計技術一定要嚴謹認真,容不得半點馬虎,學習最重要是把基礎打牢,囫圇吞棗、不求甚解會給工作和學習帶來很多隱患,效率上必須打折扣。留下來以自勉!

JSON物件長度和遍歷方法

a a 前端部落格 2014 09 02 前端開發 jquery json 2234view 0 json 陣列有長度json.abc.length,如果單純是json格式,那麼不能直接使用json.length方式獲取長度,而應該使用其他方法。最近在修改乙個html 頁面的js 的時候遍歷json...

JSON物件長度和遍歷方法

json 陣列有長度json abc.length,如果單純是json格式,那麼不能直接使用json.length方式獲取長度,而應該使用其他方法。最近在修改乙個html 頁面的js 的時候遍歷json物件,卻怎麼也除錯不通過。怪這個html網頁不知道用了什麼方法禁止了js 錯誤提示,剛開始的時候不...

遍歷json資料的n種方法

下面介紹下四種解析json的方式 part 1 var list1 1,3,4 alert list1 1 var list2 alert list2 0 xing alert list2 0 xing part 2 var value shanghai chengdu america bb spa...