JSON.stringify()

JSON wird häufig verwendet, um Daten mit dem Server auszutauschen.

Beim Senden von Daten an den Server handelt es sich in der Regel um eine Zeichenkette.

Wir können die Methode JSON.stringify() verwenden, um ein JavaScript-Objekt in eine Zeichenkette umzuwandeln.

Syntax

JSON.stringify(value[, replacer[, space]])

Parameter description:

  • value:

    Erforderlich. Der zu konvertierende JavaScript-Wert (normalerweise ein Objekt oder Array).

  • replacer:

    Optional. Eine Funktion oder ein Array, die verwendet werden, um das Ergebnis zu transformieren.

    Wenn replacer eine Funktion ist, ruft JSON.stringify diese Funktion auf und übergibt den Schlüssel und den Wert jedes Mitglieds. Der Rückgabewert wird anstelle des ursprünglichen Werts verwendet. Wenn diese Funktion undefined zurückgibt, wird das Mitglied ausgeschlossen. Der Schlüssel für das Wurzelobjekt ist eine leere Zeichenkette: "".

    Wenn replacer ein Array ist, werden nur Mitglieder konvertiert, deren Schlüsselwerte im Array vorhanden sind. Die Konvertierungsreihenfolge der Mitglieder entspricht der Reihenfolge der Schlüssel im Array. Wenn der Parameter value ebenfalls ein Array ist, wird das replacer-Array ignoriert.

  • space:

    Optional. Fügt dem Text Einrückung, Leerzeichen und Zeilenumbrüche hinzu. Wenn space eine Zahl ist, wird der Text des Rückgabewerts auf jeder Ebene um die angegebene Anzahl von Leerzeichen eingerückt. Wenn space größer als 10 ist, wird der Text um 10 Leerzeichen eingerückt. space kann auch eine Nicht-Zahl sein, wie z. B. \t.


Konvertierung von JavaScript-Objekten

Zum Beispiel senden wir die folgenden Daten an den Server:

var obj = { "name":"example", "alexa":10000, "site":"www.example.com"};

Wir verwenden die Methode JSON.stringify(), um die obigen Daten zu verarbeiten und sie in einen String umzuwandeln:

var myJSON = JSON.stringify(obj);

myJSON ist ein String.

Wir können myJSON an den Server senden:

Beispiel

var obj = { "name":"example", "alexa":10000, "site":"www.example.com"}; var myJSON = JSON.stringify(obj); document.getElementById("demo").innerHTML = myJSON;

Selbst ausprobieren »

JavaScript-Array-Konvertierung

Wir können auch ein JavaScript-Array in einen JSON-String umwandeln:

Beispiel

var arr = [ "Google", "Example", "Taobao", "Facebook" ]; var myJSON = JSON.stringify(arr);

myJSON ist ein String.

Wir können myJSON an den Server senden:

Beispiel

var arr = [ "Google", "Example", "Taobao", "Facebook" ]; var myJSON = JSON.stringify(arr); document.getElementById("demo").innerHTML = myJSON;

Selbst ausprobieren »

Ausnahmen

Daten parsen

JSON kann keine Date-Objekte speichern.

JSON.stringify() konvertiert alle Datumsangaben in Strings.

Beispiel

var obj = { "name":"Example", "initDate":new Date(), "site":"www.example.com"}; var myJSON = JSON.stringify(obj); document.getElementById("demo").innerHTML = myJSON;

Selbst ausprobieren »

Danach können Sie die Zeichenfolge wieder in ein Date-Objekt umwandeln.


Parsing-Funktionen

JSON erlaubt keine Funktionen. JSON.stringify() entfernt Funktionen aus JavaScript-Objekten, einschließlich Schlüssel und Wert.

Beispiel

var obj = { "name":"Example", "alexa":function () {return 10000;}, "site":"www.example.com"}; var myJSON = JSON.stringify(obj); document.getElementById("demo").innerHTML = myJSON;

Selbst ausprobieren »

Wir können das obige Problem vermeiden, indem wir die Funktion in einen String umwandeln, bevor wir die Funktion JSON.stringify() ausführen:

Beispiel

var obj = { "name":"Example", "alexa":function () {return 10000;}, "site":"www.example.com"}; obj.alexa = obj.alexa.toString(); var myJSON = JSON.stringify(obj); document.getElementById("demo").innerHTML = myJSON;

Selbst ausprobieren »

Es wird nicht empfohlen, Funktionen in JSON zu verwenden.


Browser-Unterstützung

Alle gängigen Browser unterstützen die Funktion JSON.stringify():

  • Firefox 3.5
  • Internet Explorer 8
  • Chrome
  • Opera 10
  • Safari 4
Andere Erweiterungen