2012-01-03 37 views
2
<script> 
var output = {"regions":{"4441":"Avtonomna Respublika Krym","4431":"Cherkas'ka Oblast'","4432":"Chernihivs'ka Oblast'","4433":"Chernivets'ka Oblast'","4434":"Dnipropetrovs'ka Oblast'","4435":"Donets'ka Oblast'","4436":"Ivano-Frankivs'ka Oblast'","4437":"Kharkivs'ka Oblast'","4438":"Khersons'ka Oblast'","4439":"Khmel'nyts'ka Oblast'","4440":"Kirovohrads'ka Oblast'","4443":"Kyyivs'ka Oblast'","4445":"L'vivs'ka Oblast'","4444":"Luhans'ka Oblast'","4442":"Misto Kyyiv","4450":"Misto Sevastopol","4446":"Mykolayivs'ka Oblast'","4447":"Odes'ka Oblast","4448":"Poltavs'ka Oblast'","4449":"Rivnens'ka Oblast'","4451":"Sums'ka Oblast'","4452":"Ternopil's'ka Oblast'","788":"Ukraine","4453":"Vinnyts'ka Oblast'","4454":"Volyns'ka Oblast'","4455":"Zakarpats'ka Oblast'","4456":"Zaporiz'ka Oblast'","4457":"Zhytomyrs'ka Oblast'"}} 

alert(output.regions[1]); 
</script> 

這部分給了我不確定:如何從此json對象中檢索值?

alert(output.regions[1]); 

我怎麼能搶例如第一個鍵/值對。基本上我需要把它變成一個選擇下拉菜單,數字鍵將是值和城市的名稱將是選項文本。

+0

只是一個側面說明,你試圖訪問的是一個JavaScript對象,而不是一個JSON對象。 JSON是對象的_representation_(即上面粘貼的字符)。 – 2012-01-03 22:44:46

回答

3

可以遍歷它想:

for(key in output.regions) { 
    alert(key +' => '+output.regions[key]); // 4441 => Avtonomna Respublika Krym ...etc 
} 
1

regions實體是一個對象而不是數組,因此您必須通過其關聯的鍵來選擇其屬性。

output.regions.4441 

output.regions['4441'] 
+0

或者您可以像nav導航一樣遍歷它 – 2012-06-01 20:20:10

2

,而不是數字索引,你要鑰匙插入regions與您指定的鍵,像44414431等:

var output = {"regions":{"4441":"Avtonomna Respublika Krym","4431":"Cherkas'ka Oblast'","4432":"Chernihivs'ka Oblast'","4433":"Chernivets'ka Oblast'","4434":"Dnipropetrovs'ka Oblast'","4435":"Donets'ka Oblast'","4436":"Ivano-Frankivs'ka Oblast'","4437":"Kharkivs'ka Oblast'","4438":"Khersons'ka Oblast'","4439":"Khmel'nyts'ka Oblast'","4440":"Kirovohrads'ka Oblast'","4443":"Kyyivs'ka Oblast'","4445":"L'vivs'ka Oblast'","4444":"Luhans'ka Oblast'","4442":"Misto Kyyiv","4450":"Misto Sevastopol","4446":"Mykolayivs'ka Oblast'","4447":"Odes'ka Oblast","4448":"Poltavs'ka Oblast'","4449":"Rivnens'ka Oblast'","4451":"Sums'ka Oblast'","4452":"Ternopil's'ka Oblast'","788":"Ukraine","4453":"Vinnyts'ka Oblast'","4454":"Volyns'ka Oblast'","4455":"Zakarpats'ka Oblast'","4456":"Zaporiz'ka Oblast'","4457":"Zhytomyrs'ka Oblast'"}} 

alert(output.regions[4441]); // alerts "Avtonomna Respublika Krym" 
1

關鍵字「regions」的值是一個映射,而不是一個數組 - 它沒有排序,因此沒有「第一個鍵/值對」的概念 - 您必須施加喲如果你想要一個,你自己訂購。

1

這是因爲output.regions是一個對象,而不是一個數組。你可能需要通過ID(778)訪問,或者如果你不知道它,你可以迭代找到它。

for (k in output.regions) { var key = k; break; } 
alert(output.regions[key]); 
1

沒有「第一」值。 javascript對象的屬性沒有排序。你可以遍歷一個JavaScript對象是這樣的:

for(key in output.regions){ 
    alert(output.regions[key]) 
} 

和檢查迭代的週期,但是沒有保證的順序不會意外更改。要保證訂單,您需要使用數組。