Trotz viel googeln und haarsträubend kann ich den Unterschied zwischen json, Objekten und Arrays (in Javascript) für mein ganzes Leben nicht artikulieren. Im Folgenden wird beschrieben, wie ich zweidimensionale Datencontainer verwendet habe (ich habe Angst, hier die Wörter "Array", "Objekt" oder "JSON" zu verwenden). Bitte sagen Sie mir, was diese beiden Beispiele sind.

//first example:
[
    {"record_id":1,"name":"Frank"},
    {"record_id":2,"name":"Sally"}
]

//second example:
{
"countries": 
    [
    {"id":1,"name":"Canada"},
    {"id":2,"name":"Mexico"}
    ],
"states":
    [
    "id":1,"name":"Maine"},
    {"id":2,"name":"Alaska"}
    ]
}
23
Octavient 7 Okt. 2012 im 01:53

5 Antworten

Beste Antwort

JSON ist eine Darstellung der Datenstruktur, kein Objekt oder Array.

[1,2,3]

Ist ein Array.

{"foo":"bar"}

Ist ein Objekt.

In Ihrem Beispiel

[
  {"record_id":1,"name":"Frank"},
  {"record_id":2,"name":"Sally"}
]

Ist ein Array von Objekten.

{
  "countries": 
    [
      {"id":1,"name":"Canada"},
      {"id":2,"name":"Mexico"}
    ],
  "states":
    [
      {"id":1,"name":"Maine"},
      {"id":2,"name":"Alaska"}
    ]
}

Ist ein Objekt, das andere Arrays und Objekte enthält.

57
Gary G 6 Okt. 2012 im 21:56

JSON ist JavaScript Object Notation. Dies ist einfach eine Möglichkeit, JavaScript-Datentypen aufzuschreiben. Es ist kein Datentyp an sich.

Im Folgenden finden Sie einige Beispiele für JavaScript-Datentypen und die Literalschreibweise für deren Erstellung.

JSON kann beispielsweise zum Senden von Daten vom Server an den Browser verwendet werden, da JavaScript leicht in eine normale JavaScript-Datenstruktur analysiert werden kann.

In Ihrem Beispiel verwenden Sie Listen von Objekten und Objekte von Objekten.

Dies ist eine Liste von 3 leeren Objekten.

[{}, {}, {}]

Dies ist eine Liste von drei einfachen Datensätzen:

var mylist = [
    {name: 'John', age: 24},
    {name: 'Bill', age: 42},
    {name: 'Jill', age: 18},
    ]

Sie können folgendermaßen darauf zugreifen:

mylist[1].name
>>> 'Bill'

mylist[2].age
>>> 18

JavaScript hat mehrere Datentypen:

Nummer

1
100
-2000
123.45

String

"Hi John"
"Message:\nGo Forth"

Boolescher Wert

true
false

Array

[1,2,3]
[]
["a", "b", 123]
["a", "b", 123, [3,4,5]]

Objekt

{}
{a: 10}
{mylist: [1,2,3], yourlist: [4,5,6]}
{myself: {name: 'me', age: 10}, yourself: {name: 'you', age: 20}}
7
gahooa 6 Okt. 2012 im 22:09

JSON ist ein Textdatenaustauschformat. Wie der Name ("JavaScript Object Notation") andeutet, stammt es von JS; Dies bedeutet, dass JSON tatsächlich syntaktisch gültiges JavaScript ist. Mit anderen Worten, Sie können eine JSON-Zeichenfolge direkt in Ihren JS-Code einfügen.

Arrays sind spezielle Objekte. Sie können mit [] erstellt werden.

Objekte können über {} erstellt werden.

In Ihrem Beispiel haben Sie also zwei JSON-Zeichenfolgen, von denen eine ein Array von Objekten darstellt und die zweite ein Objekt darstellt, dessen Eigenschaften selbst Arrays von Objekten sind.

1
user123444555621 6 Okt. 2012 im 22:09

Nun, ich glaube, Objekte können Methoden und Eigenschaften haben, während Arrays nicht können. JSON kann an den Server übergeben werden, während das Array nicht übergeben werden kann, es sei denn, Sie übergeben es per POST als Zeichenfolge

0
Johndave Decano 6 Okt. 2012 im 21:58

Sie verwenden { geschweifte Klammern }, um ein Objektliteral zu deklarieren.

Sie verwenden [ eckige Klammern ], um ein Array-Literal zu deklarieren.

Objekte sind Sammlungen von Schlüsselnamen-Wert-Paaren.

Hier ist ein Beispiel für ein Array von Zeichenfolgen:

var a = [ "one", "two", "three" ];

Hier ist ein Beispiel für ein einfaches Objekt, das eine Person darstellt:

var personObject = {
    name: 'Joe',
    age: 25,
    hometown: 'New York'        
};
5
jahroy 21 Aug. 2014 im 04:47