2010-11-15 37 views
0

工作這是在我身邊一個非常簡單的錯誤,感謝所有誰回答。用JSON文件和Javascript

+0

樣品JSON文件將是有益的 – sunn0 2010-11-15 10:25:41

+0

提供一個JSON包的例子有一個結果,而另一個有不止一個結果。 – 2010-11-15 10:25:52

+0

感謝太陽和馬塞洛,我已經更新了我的原始帖子。 – user508096 2010-11-15 10:59:19

回答

1

你需要抓住id之前訪問第一個藝術家(因爲它是一個數組)是這樣的:

var artisttype = Artists[0].id; 

它會更好,如果你可以改變JSON到總是返回一個數組,甚至只有一個結果......不幸的是,有些平臺不會這樣做,原因超出了我的理解。

0

你說的沒錯,這是有問題的,而且說實話這聽起來像「另一端」這是送你的JSON正在不一致。

的問題是,當有多個項目,他們正在向你發送陣列id屬性,當有他們只是送你一個簡單的數值(例如一個整數)單個項目。理想情況下,當有單個項目時,您應該發送一個單項數組 - 這可以讓您每次使用相同的基於數組的解析代碼。

如果你無法說服他們改變什麼,他們會送你,雖然,那麼最好的辦法很簡單,就是你現在正在做什麼;查看是否Artists.id被定義,使用它,如果是這樣,則退回到訪問id作爲數組。

1
for(var propertyname in responseData){ 
     //will loop through the different elements in your json array 
     alert(responseData[propertyName]); //will output the valueof each element 
} 
+0

....爲什麼這是upvoted?它不在*全部*在這裏回答任何問題。 – 2010-11-15 10:30:21

+0

我不確定,我還沒有能力提出問題。 – user508096 2010-11-15 11:00:26

0

但是,如果返回多於1個結果Artists.id;將返回「未定義」。所以我需要將其更改爲:Artists.id [0];

這不可能是Artists.id應該是「對象」不未定義如果Artists.id [0]存在。也許這是說明藝術家[0] .id?如果這樣你就可以測試的typeof(藝術家)== typeof運算([])