Ich versuche ein JS-Objekt mit einem benutzerdefinierten Attributnamen zu erstellen. Grundsätzlich möchte ich ein Schema basierend auf dem Wurzelelement erstellen. („Artikel“, wenn Typ-Array und „Eigenschaften“, wenn Typ-Objekt)Eine benutzerdefinierte Variable als JSON-Attribut hinzufügen
var helperObj = type.toLowerCase() === "array" ? "items" : "properties";
var newSchema = {
"title": title,
"type": type,
helperObj.toString() : {}
};
Die oben einen Syntaxfehler gibt:
Syntaxerror: fehlend: nach Immobilien ID
Dann habe ich versucht, Analysiere einen String als JSON.
var schemaString="{ \"title\":"+title+", \"type\":"+type.toLowerCase()+","+helperObj+":{} }";
var newSchema=JSON.parse(schemaString);
Dies gibt eine Fehlermeldung,:
Syntax: JSON.parse: unerwartetes Zeichen in Zeile 1 Spalte 11 der JSON-Daten
Wie kann ich ein JS Objekt erhalten wie gewünscht?
Wenn Sie ES6 verwenden, können Sie schreiben '{[helperObj]: {}}'. Lesen Sie auch [this] (http://stackoverflow.com/questions/9398535/add-dynamic-key-value-pairs-to-javascript-array-or-hash-table). –
[So etwas wie ein "JSON-Objekt" gibt es nicht.] (Http://benalman.com/news/2010/03/theres-no-such-thing-as-a-json/) – nnnnnn
@ Aᴍɪʀ es funktionierte und auch die Methode in der Post hat funktioniert. Vielen Dank. – SachiDangalla