471 Stimmen

Array in JSON umwandeln

Ich habe ein Array var cars = [2,3,..] die ein paar ganze Zahlen enthält. Ich habe ein paar Werte zu dem Array hinzugefügt, aber ich muss jetzt dieses Array an eine Seite über jQuery's senden .get Methode. Wie kann ich es in ein JSON-Objekt umwandeln, um es zu versenden?

0 Stimmen

J

0 Stimmen

I

0 Stimmen

s

795voto

JonoW Punkte 13361

Skript für Abwärtskompatibilität: https://github.com/douglascrockford/JSON-js/blob/master/json2.js

Und rufen Sie an:

var myJsonString = JSON.stringify(yourArray);

Note : Das JSON-Objekt ist nun Bestandteil der meisten modernen Webbrowser (IE 8 und höher). Siehe caniuse für eine vollständige Auflistung. Credit goes to: @Spudley für seinen Kommentar unten

5 Stimmen

T

1 Stimmen

J

6 Stimmen

Y

78voto

Stancho Stanchev Punkte 869

Ich habe es so gemacht:

wenn ich es habe:

var jsonArg1 = new Object();
    jsonArg1.name = 'calc this';
    jsonArg1.value = 3.1415;
var jsonArg2 = new Object();
    jsonArg2.name = 'calc this again';
    jsonArg2.value = 2.73;

var pluginArrayArg = new Array();
    pluginArrayArg.push(jsonArg1);
    pluginArrayArg.push(jsonArg2);

zu konvertieren pluginArrayArg (die reine Javascript-Array ist) in JSON-Array:

var jsonArray = JSON.parse(JSON.stringify(pluginArrayArg))

0 Stimmen

JSON.parse() ist nicht erforderlich.

0 Stimmen

s

63voto

Eduardo Sganzerla Punkte 881

Wow, es scheint heutzutage viel einfacher geworden zu sein... 3 Möglichkeiten, wie Sie es tun können:

json = { ...array };

json = Object.assign({}, array);

json = array.reduce((json, value, key) => { json[key] = value; return json; }, {});

6 Stimmen

jsonString = JSON.stringify({ ...array })

0 Stimmen

s

26voto

mehmet Punkte 181

Beantwortet im Jahr 2022

Ich denke, das ist die beste und sauberste Antwort.

Verwendung von JSON.stringify() konvertieren wir das JavaScript-Array in einen Json-String. Und mit JSON.parse() konvertieren wir einen Json-String in ein Json-Objekt.

var JsonObject, jsArray;

// JS array
jsArray = ["one", "two", "three"];

// Convert (js array) to (json object)
JsonObject = JSON.parse(JSON.stringify(jsArray));

// type
console.log(typeof(JsonObject));

// JsonObject
console.log(JsonObject);

2 Stimmen

Die moderne Antwort

14voto

Vijay Bansal Punkte 619

Eine andere Möglichkeit wäre die folgende:

        var json_arr = {};
        json_arr["name1"] = "value1";
        json_arr["name2"] = "value2";
        json_arr["name3"] = "value3";

        var json_string = JSON.stringify(json_arr);

1 Stimmen

json_arr in Ihrem Code ist kein Array, sondern ein Objekt.

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