var jSonString = JSON.stringify(testObject);
Was ist der Unterschied zwischen der 2 (JS obj und JSON), wenn ich das obige Objekt mit JSON konvertiere ?
JSON ist ein Datenaustauschformat. Es ist ein Standard, der beschreibt, wie geordnete Listen und ungeordnete Karten, Boolesche Zeichenfolgen und Zahlen in einer Zeichenfolge dargestellt werden können. Genau wie XML und YAML eine Möglichkeit sind, strukturierte Informationen zwischen Sprachen zu übertragen, ist JSON dieselbe. Ein JavaScript-Objekt ist dagegen ein physischer Typ. Genau wie ein PHP-Array, eine C ++ - Klasse / Struktur, ist ein JavaScript-Objekt ein JavaScript-interner Typ.
Hier ist eine Geschichte. Stellen Sie sich vor, Sie haben Möbel in einem Geschäft gekauft und möchten, dass sie geliefert werden. Das einzige Modell, das noch auf Lager ist, ist das Display-Modell. Sie stimmen jedoch dem Kauf zu.
Im Laden ist die von Ihnen gekaufte Kommode ein lebendes Objekt:
var chestOfDrawers = {
color: "red",
numberOfDrawers: 4
}
Sie können jedoch keine Kommode per Post verschicken, also zerlegen Sie sie (lesen, fädeln). Es ist jetzt in Bezug auf Möbel nutzlos. Es ist jetzt JSON. Es ist in Flatpack-Form.
{"color":"red","numberOfDrawers":4}
Wenn Sie es erhalten, bauen Sie die Kommode wieder auf (lesen, analysieren). Es ist jetzt wieder in einer Objektform.
Der Grund für JSON / XML und YAML besteht darin, dass Daten zwischen Programmiersprachen in einem Format übertragen werden können, das beide teilnehmenden Sprachen verstehen können. Sie können PHP oder C ++ Ihr JavaScript-Objekt nicht direkt geben. weil jede Sprache ein Objekt unter der Haube anders darstellt. Da wir das Objekt jedoch in JSON-Notation unterteilt haben; dh eine standardisierte Art der Darstellung von Daten, wir können die JSON- Darstellung des Objekts an eine andere Sprache (C ++, PHP) übertragen, sie können das JavaScript-Objekt, das wir hatten, basierend auf der JSON-Darstellung des Objekts in ihrem eigenen Objekt neu erstellen .
Es ist wichtig zu beachten, dass JSON keine Funktionen oder Daten darstellen kann. Wenn Sie versuchen, ein Objekt mit einem Funktionselement zu stringifizieren, wird die Funktion in der JSON-Darstellung weggelassen. Ein Datum wird in eine Zeichenfolge konvertiert.
JSON.stringify({
foo: new Date(),
blah: function () {
alert('hello');
}
}); // returns the string "{"foo":"2011-11-28T10:21:33.939Z"}"