JSON物件長度和遍歷方法

2021-07-05 19:40:30 字數 1276 閱讀 6168

a- a+

前端部落格

•2014-09-02

•前端開發**

•jquery | json

• 2234view

0 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物件長度和遍歷方法

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

JSON遍歷方法

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

json物件的遍歷

json 有兩種結構 1 物件 jsonobject 屬性 值 得集合。var json for var obj in json 2 陣列 jsonarray 由值組成的有序列表。var json jack mike tom 20,true for var i 0 i json.length i 復...