2012-05-05 221 views
23

我有一個JSON輸出類似如下:JQuery的解析JSON陣列

["City1","City2","City3"] 

我想每一個城市的名字,我怎麼能做到這一點?

$.getJSON("url_with_json_here",function(json){ 

}); 

編輯:

$.getJSON('url_here', function(data){ 
    $.each(data, function (index, value) { 
     $('#results').append('<p>'+value+'</p>'); 
     console.log(value); 
    }); 
}); 

上面似乎並不奏效,沒有值被輸出。

+0

您是否在使用'g etJSON()'來獲取JSON?因爲它應該已經被提取。沒有任何代碼示例很難提供幫助。你是否從未寫過任何代碼? – kapa

+0

請參閱我的編輯,我只是​​困惑如何檢索從url –

回答

44

getJSON()也會在提取後爲你解析JSON,所以從此開始,你正在使用一個簡單的Javascript數組([]在JSON中標記一個數組)。該文檔還提供了有關如何處理獲取數據的示例。

你可以得到所有的值在數組using a for loop

$.getJSON("url_with_json_here", function(data){ 
    for (var i = 0, len = data.length; i < len; i++) { 
     console.log(data[i]); 
    } 
}); 

檢查您的控制檯查看輸出(ChromeFirefox/FirebugIE)。

的jQuery還提供$.each()的迭代,所以你也可以這樣做:

$.getJSON("url_with_json_here", function(data){ 
    $.each(data, function (index, value) { 
     console.log(value); 
    }); 
}); 
+0

謝謝,請參閱我的編輯 –

+0

確保JSON到達:)。嘗試'console.log(data);'。你編輯到你的問題的例子應該工作。 – kapa

+0

@ user1083813爲你創建一個[小模擬](http://jsfiddle.net/wTCAM/1/),證明你的代碼正常工作。 – kapa

29

使用parseJSON method

​​

然後,你必須與城市名稱的數組。

+0

項目非常感謝,所以如果我使用$。來自URL的JSON? –

+1

@ user1083813:如果您使用AJAX獲取JSON,則應指定數據類型爲JSON。然後它會被自動解析,並且成功回調將獲得一個對象或數組而不是一個字符串。如果您使用'getJSON'方法,則數據類型會自動設置爲JSON,因此您不必解析結果。 – Guffa

+0

這是我需要的。我在session中已經有了JSON字符串,並且不需要AJAX抓取。謝謝。 – zkent

0
var dataArray = []; 
var obj = jQuery.parseJSON(response); 
    for(key in obj) 
    dataArray.push([key.toString(), obj [key]]); 
}; 
+2

-1在數組上使用'for..in'。 – kapa

7
var dataArray = []; 
var obj = jQuery.parseJSON(yourInput); 

$.each(obj, function (index, value) { 
    dataArray.push([value["yourID"].toString(), value["yourValue"] ]); 
}); 

這幫助了我很多:-)

0

parse.JSON

var obj = jQuery.parseJSON('{ "name": "John" }'); 
alert(obj.name === "John"); 
+6

-1相同的答案已經發布一年多了。 – kapa