2013-01-02 23 views
6

Aşağıda 3 JSON Array yapısı biçimleri ... HangiJSON Dizisi Yapısı Varyasyonları

ilki json.org adresinde açıklanan bir, ben aşina değilim biridir:

Biçim # 1

{"People": [ 
    { 
    "name": "Sally", 
    "age": "10" 
    }, 
    { 
    "name": "Greg", 
    "age": "10" 
    } 
]} 

İkincisi, dizinin öğelerini adlandıran hafif bir varyasyondur. Şahsen umurumda değil; Bir dizinin elemanlarını kod olarak isimlendirmezsiniz (dizine erişirler), neden bunları JSON olarak adlandırırsınız?

Biçim # 2

{"People": [ 
    "Person1": { 
    "name": "Sally", 
    "age": "10" 
    }, 
    "Person2": { 
    "name": "Greg", 
    "age": "10" 
    } 
]} 

Bu sonuncusu Biçim 2. oldukça benzer başka versiyonu olan, ancak ekstra küme parantezi nerede olduğu anlaşılıyor çünkü bu bir yanlıştır Bir tahminim var ait değiller.

Biçim # 3

{"People": [ 
    { 
    "Person1": { 
     "name": "Sally", 
     "age": "10" 
    } 
    }, 
    { 
    "Person2": { 
     "name": "Greg", 
     "age": "10" 
    } 
    } 
]} 

Yine, ben json.org adresinde açıklanan JSON Array biçimidir olarak Biçim 1. geçerli olduğunu eminim. Ancak, ne hakkında Biçim # 2 ve Biçim # 3? Geçerli JSON olarak kabul edilenlerden biri var mı? Eğer evet ise, bu formatlar nereden geldi? Bunları JSON.org veya Wikipedia'da özetlemedim.

+0

, hepsi geçersiz konum : http: // jsonlint .com/ – Pete

+0

Hata! Bazı noktalama işaretlerini kaçırıyorum. – MikeS

cevap

7

1. ve 3. olan İkisi - Farklı yapılar geçerli JSON (neredeyse orada eksik virgül vardır), ancak kodlamak:

  • # 1,Objeler size bir Array verir adıyla her ve yaş Dize özellikleri
  • 3. size tek Nesnesi özellik, EAC ile Nesneler, her bir Array verir Ad ve yaş ile h Dize özellikleri.

# 2 geçersiz: Diziler özellik adlarını içeremez ([ ... ] tarafından tanımlandığı gibi).

1

Çözüm Format # Varsayılan olarak 1 için:

array=[]; 
object={}; 

JSON Kodu:

var Json = { 
    People:[] 
}; 
Json.People.push({ 
    "name": "Sally", 
    "age": "10"       
}); 
Json.People.push({ 
    "name": "Greg", 
    "age": "10"       
}); 

JSON Sonuç: Aslında

{"People": [ { "name": "Sally", "age": "10" }, { "name": "Greg", "age": "10" } ] }