2012-01-03 17 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]); 

はどのようにして、例えば、第1のキー/値のペアをつかむことができます。基本的にはこれを選択ドロップダウンにする必要があります。数値キーは値になり、都市の名前はオプションテキストになります。

+0

あなたがアクセスしようとしているのはJavaScriptオブジェクトであり、JSONオブジェクトではありません。 JSONは、オブジェクトの表現(つまり、上に貼り付けた文字)です。 –

答えて

3

が好き、それを反復処理することができます:

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

リージョンエンティティはオブジェクトであり配列ではないため、関連付けられたキーでその属性を選択する必要があります。むしろ数値インデックスより

output.regions.4441 

または

output.regions['4441'] 
+0

または、ナビの説明どおりに繰り返し処理できます –

2

、あなたは44414431、などのように、あなたが指定したキーでregionsにキーしたいと思う:

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つを望むなら、あなた自身の注文。

1

output.regionsがオブジェクトではなく、配列であるためです。 ID(778)でアクセスする必要があるか、またはそれを知ることができない場合は、それを見つけるために反復することができます。

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

「最初の」値はありません。 javascriptオブジェクトのプロパティは順序付けられていません。

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

をし、繰り返しのサイクルをチェックしますが、順序が予期せず変更されないという保証はありません:あなたはこのようにJavaScriptのオブジェクトを反復処理することができます。保証された注文をするには、配列を使用する必要があります。

関連する問題