2013-01-02 12 views
6

Poniżej są 3 formaty JSON rozmieszczonymi ...JSON rozmieszczonymi Wariacje

Pierwszy z nich, jeden przedstawione w json.org, jest jeden znam:

Format nr 1

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

Drugi to niewielka odmiana, która określa elementy tablicy. Osobiście nie dbam o to; nie wymieniasz elementów tablicy w kodzie (są one dostępne w indeksie), dlaczego nadajesz im nazwy w JSON?

Format # 2

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

Ta ostatnia jest inna odmiana, dość podobna do formacie # 2, ale mam przeczucie, że ten jeden jest nieprawidłowy, ponieważ wydaje się mieć dodatkowe szelki kręcone miarę oni nie należą.

Format # 3

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

Ponownie, jestem przekonany, że Format # 1 jest ważna, ponieważ jest to format JSON Array przedstawione w json.org. Jednak co z formatem Format # 2 i Format # 3? Czy któryś z nich jest uważany za prawidłowy JSON? Jeśli tak, skąd pochodzą te formaty? Nie widzę ich zarysowanych na JSON.org lub na Wikipedii.

+0

Właściwie wszyscy są nieważne : http: // jsonlint .com/ – Pete

+0

Ups, brakuje mi jakiejś interpunkcji ... naprawiania. – MikeS

Odpowiedz

7

Zarówno nr 1 i nr 3 są (prawie - są przecinki brak) ważne JSON, ale kodują różne struktury:

  • # 1 daje Array z Przedmioty, każdy z nazwą i wieku właściwości String
  • # 3 daje Array z Objects, każdy z pojedynczym własności obiektu EAC h z nazwą i wiekiem Właściwości sznurka.

the # 2 jest nieprawidłowy: Tablice (zgodnie z definicją [ ... ]) nie może zawierać nazwy właściwości.

1

rozwiązanie dla Format # 1 Domyślnie:

array=[]; 
object={}; 

kod JSON:

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

JSON Wynik:

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

Powiązane problemy