2013-10-02 77 views
0

我有JSON數組無法獲取從JSON數組數據動態

JSON.stringify(ar) 

當我使用dispaly在警報結果就像

alert(JSON.stringify(ar)); 

,它會顯示,因爲它們。在警報輸出是簡單此

[{ 「URL」: 「LINK1」, 「標題」: 「TITLE1」}]

但是當我使用它的內容物轉移到一個數組播放列表,像

var playlist=[]; 
playlist=JSON.stringify(ar); alert (JSON.stringify(playlist[1].url)); 

,並試圖顯示其結果它給我的錯誤,給我不確定

請幫我整理出來。

+0

你爲什麼要把所有東西串起來?只需傳遞'ar'對象! – Bergi

+0

這是可以預料的,因爲您試圖以普通數組的形式訪問* stringified *數據 –

+0

此外,您的播放列表只有一個項目,您可以通過「playlist [0]」訪問 - 數組爲零-索引。 – Bergi

回答

0

你需要處理對象本身。只有當您輸出對象或通過電線等方式發送對象時,才需要使用JSON.stringify以可讀的格式顯示它們。

var ar = [{"url":"link1","title":"title1"}] 

alert(ar); // equivalent to alert(ar.toString()), will show [object Object] 
alert(JSON.stringify(ar)); // will show [{"url":"link1","title":"title1"}] 
console.log(ar); // the proper way to do it, inspect the result in console 

var playlist=[]; 

// then do either 
playlist = playlist.concat(ar); 
// or 
playlist.push.apply(playlist, ar); 
// or 
playlist.push(ar[0]); 
// or 
playlist[0] = ar[0]; 
// or 
playlist = ar; 
// (which all do a little different things) 
// but notice none of them used JSON.stringify! 

// now you can 
console.log(playlist) 
alert(playlist[0].url); // shows link1 - this is what you want 
alert(JSON.stringify(playlist[0].url)); // shows "link1" 
+0

非常感謝你。 上帝保佑你我的朋友... –

0

var playlist=[]; 

playlist=JSON.stringify(ar) 

播放列表後包含字符串,所以如果要提取網址,你需要解析JSON再次

alert(JSON.parse(playlist)[1].url); 

,但如果你把[1]則數組需要有兩個元素:

[{"url":"link1","title":"title1"},{"url":"link1","title":"title1"}] 
+0

每件事情都很好,但 警報(JSON.stringify(JSON.parse(playlist)[1] .url)); 給出輸出爲「link1」,我需要它沒有引號引起喜歡這個 鏈接1 –

+1

@ user2838253只是不要使用JSON.strongify然後。 – jcubic