485 Stimmen

Unterschied zwischen JSON.stringify und JSON.parse

Ich war verwirrt darüber, wann ich diese beiden Parser-Methoden verwenden soll.

Nachdem ich meine json_encoded Daten ausgebe und sie über Ajax wieder abrufe, gerate ich oft in Verwirrung darüber, wann ich JSON.stringify und JSON.parse verwenden sollte.

Ich erhalte [object, object] in meinem console.log, wenn geparst und ein JavaScript-Objekt, wenn stringifiziert.

$.ajax({
url: "demo_test.txt",
success: function(data) {
         console.log(JSON.stringify(data))
                     /* ODER */
         console.log(JSON.parse(data))
        //daran bin ich mir unsicher?
    }
});

714voto

Quentin Punkte 850700

JSON.stringify wandelt ein JavaScript-Objekt in JSON-Text um und speichert diesen JSON-Text in einem String, z.B.:

var mein_objekt = { key_1: "etwas Text", key_2: true, key_3: 5 };

var objekt_als_string = JSON.stringify(mein_objekt);  
// "{"key_1":"etwas Text","key_2":true,"key_3":5}"  

typeof(objekt_als_string);  
// "string"  

JSON.parse wandelt einen JSON-Text in einen JavaScript-Objekt um, z.B.:

var objekt_als_string_als_objekt = JSON.parse(objekt_als_string);  
// {key_1: "etwas Text", key_2: true, key_3: 5} 

typeof(objekt_als_string_als_objekt);  
// "object"

61voto

Bjorn 'Bjeaurn' S Punkte 3821

JSON.parse() wird verwendet, um etwas zu "parsen", das als JSON empfangen wurde.
JSON.stringify() wird verwendet, um aus einem Objekt/Array einen JSON-String zu erstellen.

49voto

bluehallu Punkte 10075

Sie sind das Gegenteil voneinander. JSON.stringify() serialisiert ein JS-Objekt in einen JSON-String, während JSON.parse() einen JSON-String in ein JS-Objekt deserialisiert.

33voto

Bhushan Gadekar Punkte 13345

Sie sind die Gegensätze voneinander.

JSON.stringify()

JSON.stringify() serialisiert ein JS-Objekt oder einen Wert in einen JSON-String.

JSON.stringify({});                  // '{}'
JSON.stringify(true);                // 'true'
JSON.stringify('foo');               // '"foo"'
JSON.stringify([1, 'false', false]); // '[1,"false",false]'
JSON.stringify({ x: 5 });            // '{"x":5}'

JSON.stringify(new Date(2006, 0, 2, 15, 4, 5)) 
// '"2006-01-02T15:04:05.000Z"'

JSON.stringify({ x: 5, y: 6 });
// '{"x":5,"y":6}' or '{"y":6,"x":5}'
JSON.stringify([new Number(1), new String('false'), new Boolean(false)]);
// '[1,"false",false]'

JSON.parse()

Die JSON.parse() Methode parst einen String als JSON und transformiert optional den produzierten Wert.

JSON.parse('{}');              // {}
JSON.parse('true');            // true
JSON.parse('"foo"');           // "foo"
JSON.parse('[1, 5, "false"]'); // [1, 5, "false"]
JSON.parse('null');            // null

22voto

Mou Punkte 14697

Zunächst konvertiert die Funktion JSON.stringify() einen JavaScript-Wert in eine JavaScript Object Notation (JSON)-Zeichenkette. Die Funktion JSON.parse() konvertiert eine JSON-Zeichenkette in ein Objekt. Weitere Informationen zu diesen beiden Funktionen finden Sie unter den folgenden Links.

https://msdn.microsoft.com/library/cc836459(v=vs.94).aspx https://msdn.microsoft.com/library/cc836466(v=vs.94).aspx

Zweitens wird das folgende Beispiel Ihnen helfen, diese beiden Funktionen zu verstehen.

    $(function () {
        //definiere ein JSON-Objekt
        var mitarbeiter = { "name": "John Johnson", "straße": "Oslo West 16", "telefon": "555 1234567" };

        //verwende JSON.stringify, um es in ein JSON-String umzuwandeln
        var jsonstring = JSON.stringify(mitarbeiter);
        $("#result").append('<p>JSON-String: ' + jsonstring + '</p>');

        //verwende die Funktion JSON.parse, um den JSON-String in ein JSON-Objekt umzuwandeln
        var jsonobjekt = JSON.parse(jsonstring);
        var info = '<ul><li>Name:' + jsonobjekt.name + '</li><li>Straße:' + jsonobjekt.straße + '</li><li>Telefon:' + jsonobjekt.telefon + '</li></ul>';

        $("#result").append('<p>JSON-Objekt:</p>');
        $("#result").append(info);
    });

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X