2011-02-09 30 views
10

Benaryoya bir JSON geçirdim. JSON anahtarlarını dinamik oldukları için bilmiyorum.json anahtarları sayı olarak

Aslında onlar sayılardır. Ben de alıyorum.

 
var countries = {"223":"142,143","222":"23,26,25,24","170":"1,2"}; 

böyle verilerine erişmek için çalıştı:

 
var objKey = 223; (var objKey = "223";) 
countries.objKey; 

Ben JSON değiştirmeyi denedim

 
var countries = {"country223":"142,143","country222":"23,26,25,24","country170":"1,2"}; 

için ... ve bunun gibi erişim it:

 
var objKey = "country"+223; (var objKey = "country"+"223";) 
countries.objKey; 

... yine hiçbir şey.

Her türlü öneri çok takdir edilecektir. Bunun yerine

+0

Bu şekilde çalışmıyor. 'objKey' ülkelerin bir özelliği değildir. – mpen

cevap

34

:

countries.objKey; 

yapın: köşeli ayraç notasyonu ile

countries[objKey]; 

, bir değişkene başvurulan değeri kullanmak (veya bir dize veya sayı kullanın) referans olabilir mülkiyet adı.

+1

@patrick dw JS serüvenimin başlangıcında hala :) – Jeffz

+0

... JSON ve JS nesneleri bana benziyor. Onlara bakarsanız, hemen hemen aynı şekilde inşa edilir. – Jeffz

+0

@Jeffz: Yorumun bu bölümünü kaldırdım çünkü "JSON komut dosyasına geçti" * ile ne kastettiğinizden emin değildim. Düşünce belki de JSON olarak başlamıştı. Temel olarak, JSON verileri metin tabanlı bir veri değişim formatıdır. Sadece javascript nesneleri ve dizileri gibi görünebilir, çünkü standardın dayanağı budur. Ama sadece metin olmadıkça gerçekten JSON değil. Örneğin, bu bir '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' dır, fakat bu geçerli JSON ''' '' '' '' '' '' ('' '' '' '' '' '' '' '' '' '' '' '' '' 'ile ayrıştırılabilir. ilk nesne – user113716