Frage

Diese Frage bereits eine Antwort hier:

Ich bin neu in JSON und JavaScript-Objekte.

  • Kann jemand bitte die Unterschiede zwischen JSON und JavaScript-Objekt erklären?
  • Was sind ihre Anwendungen?
  • Ist man besser als die anderen? Oder ist es von der Situation abhängen?
  • Wenn in welcher Situation welche, zu benutzen?
  • Warum wurde JSON in erster Linie erstellt? Was war ihr Hauptzweck?
  • Kann jemand geben Beispiele, wenn man JSON eher als ein JavaScript-Objekt und umgekehrt verwendet werden soll?
War es hilfreich?

Lösung

Zunächst sollten Sie wissen, was JSON ist:

  • Es ist sprachunabhängig Datenaustauschformat.

Die Syntax von JSON durch die JavaScript Object Notation Wörtliche inspiriert wurde, aber es gibt Unterschiede zwischen ihnen.

Zum Beispiel in JSON alle Tasten müssen in Anführungszeichen gesetzt werden, während in Objektliterale ist dies nicht notwendig:

// JSON:
{ "foo": "bar" }

// Object literal:
var o = { foo: "bar" };

Die Anführungszeichen sind obligatorisch auf JSON, weil in JavaScript (genauer in ECMAScript 3rd Edition.), Die Verwendung von reservierten Worten als Eigenschaftsnamen nicht erlaubt sind, zum Beispiel:

var o = { if: "foo" }; // SyntaxError in ES3

Während unter Verwendung eines Stringliteral als Eigenschaftsnamen (unter Angabe der Eigenschaftsname) gibt keine Probleme:

var o = { "if": "foo" }; 

Also für "Kompatibilität" (und leicht eval'ing vielleicht?) Die Anführungszeichen sind obligatorisch.

Die Datentypen in JSON werden auch auf die folgenden Werte beschränkt:

  • string
  • number
  • object
  • array
  • Ein wörtlich als:
    • true
    • false
    • null

Die Grammatik von Strings Änderungen. Sie wird zu durch abgrenzen doppelte Anführungszeichen , während in JavaScript können Sie austauschbar einfache oder doppelte Anführungszeichen verwenden.

// Invalid JSON:
{ "foo": 'bar' }

Die akzeptierte JSON Grammatik Numbers ändert sich auch in JavaScript Sie Hexadezimal-Literale verwenden können, zum Beispiel 0xFF, oder (die berüchtigten) Octal Literale z.B. 010. In JSON können Sie nur Dezimal Literale verwenden.

// Invalid JSON:
{ "foo": 0xFF }

Es gibt einige Buggy-Implementierungen (Firefox 3.5+, IE8 +, json2.js), wo Oktal Literale falsch erlaubt sind, zum Beispiel JSON.parse('01') sollte eine SyntaxError erzeugen.

Andere Tipps

JSON ist eine String-Darstellung eines Objekts. Es ist ein interoperables Serialisierungsformat. Es ist nicht nur auf Javascript gebunden. Zum Beispiel gibt es JSON Serializer für .NET so dass Sie serialize / deserialize .NET-Objekte.

So ist es nur ein Format, so dass Sie von den Objekten zu bespannen und zurück zu konvertieren, die praktisch ist, wenn man sie über den Draht übertragen werden soll.

Es ist sehr nah an Javascript-Objekt Darstellung und wenn Sie einfach ein JSON-String eval() erhalten Sie das entsprechende Objekt erhalten.

JSON ist ein Datenaustauschformat, das geschieht wie eine Teilmenge von YAML oder JavaScript-Code zu schauen, können Sie ausführen und ein Objekt zurück. Ein JavaScript-Objekt ist nur ein Objekt in JavaScript.

Mit JSON ein Datenaustauschformat ist Sie können damit strukturierte Daten in Textform auszutauschen. Es ist ziemlich von JavaScript jetzt entkoppelt. JavaScript-Objekt ermöglicht es Ihnen, mit strukturierten Daten, die während der Ausführung eines JavaScript-Programm zu erstellen und zu arbeiten.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top