1386 Stimmen

Konvertiere JS-Objekt in JSON-Zeichenfolge

Wenn ich ein Objekt in JS definiert habe mit:

var j={"name":"binchen"};

Wie kann ich das Objekt in JSON konvertieren? Der Ausgabestring sollte sein:

'{"name":"binchen"}'

5voto

Subroto Biswas Punkte 467

Woking... Einfach zu bedienen

$("form").submit(function(evt){
  evt.preventDefault();
  var formData = $("form").serializeArray(); // Erstellt ein Array von Objekten
  var jsonConvert = JSON.stringify(formData);  // In JSON konvertieren
});

Danke

3voto

Alongkorn Punkte 3336

Sie können die nativeStringify-Funktion wie folgt verwenden

const j={ "name": "binchen" }

/** Konvertieren von JSON in String */
const jsonString = JSON.stringify(j)

console.log(jsonString) // {"name":"binchen"}

3voto

Hauke Punkte 433

Die vorhandenen JSON-Ersetzungen waren zu viel für mich, also habe ich meine eigene Funktion geschrieben. Dies scheint zu funktionieren, aber ich könnte einige Randfälle übersehen haben (die in meinem Projekt nicht auftreten). Und wird wahrscheinlich nicht für vorhandene Objekte funktionieren, sondern nur für selbst erstellte Daten.

function simpleJSONstringify (obj) {
    var prop, str, val,
        isArray = obj instanceof Array;

    if (typeof obj !== "object")
        return false;

    str = isArray ? "[" : "{";

    function quote (str) {
        if (typeof str !== "string")
            str = str.toString ();

        // Wenn die tatsächliche Variable eine Zahl war, gab sie eine Zahl zwischen Anführungszeichen zurück
        // return str.match(/^\".*\"$/) ? str : '"' + str.replace(/"/g, '\\"') + '"';

        // Jetzt überprüfen wir, ob es eine Zahl ist, und wenn ja, entfernen wir die Anführungszeichen
        str = str.match (/^\".*\"$/) ? str : '"' + str.replace (/"/g, '\\"') + '"';

        if (isNaN (str.replace (/^["]/, '').replace (/["]$/, '')))
            return str;
        else
            return str.replace (/^["]/, '').replace (/["]$/, '');
    }

    for (prop in obj) {
        if (!isArray) {
            // Eigenschaft in Anführungszeichen setzen
            str += quote (prop) + ": ";
        }

        // Wert in Anführungszeichen setzen
        val = obj [prop];
        str += typeof val === "object" ? simpleJSONstringify (val) : quote (val);
        str += ", ";
    }

    // Letztes Komma entfernen, schließende Klammer
    str = str.substr (0, str.length - 2) + ( isArray ? "]" : "}" );

    return str;
}

2voto

KARTHIKEYAN.A Punkte 14230

Wenn Sie den Wert von JSON-Eigenschaften im String-Format erhalten möchten, verwenden Sie den folgenden Weg

var i = {"x":1}

var j = JSON.stringify(i.x);

var k = JSON.stringify(i);

console.log(j);

"1"

console.log(k);

'{"x":1}'

2voto

Kamil Kiełczewski Punkte 69048

Verwenden Sie einfach JSON.stringify zur Konvertierung - denken Sie jedoch daran, dass Felder, die den Wert undefined haben, nicht in das JSON aufgenommen werden.

var j={"name":"binchen", "remember":undefined, "age": null };

var s=JSON.stringify(j);

console.log(s);

Das Feld remember 'verschwindet' aus dem Ausgabe-JSON

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