Angenommen, ich habe folgende Einträge definiert mit Immutable.js:Parsing verschachtelte Datensätze in Immutable.js
var Address = Immutable.Record({street: '', city: '', zip: ''});
var User = Immutable.Record({name: '', address: new Address()});
Wie konvertiere ich Ebene Javascript-Objekt in den Benutzerdatensatz? Ich habe versucht, die folgenden, aber es produziert nicht die erwartete Ausgabe:
var user = new User({name: 'Foo', address: {street: 'Bar', city: 'Baz'}});
// => Record { "name": "Foo", "address": [object Object] }
Ich bin mir bewusst, dass es möglich ist, ausdrücklich die Adresseintrag zu erstellen:
var user = new User({name: 'Foo', address: new Address({street: 'Bar', city: 'Baz'})});
// => Record { "name": "Foo", "address": Record { "street": "Bar", "city": "Baz", "zip": "" } }
Aber das ist nicht Lösung Ich suche . Stellen Sie sich vor, Sie haben Datensätze mehrere Ebenen tief geschachtelt und möchten die Daten als JSON (z. B. in der Datenbank) speichern/abrufen. Ich möchte die tatsächliche Benutzerdatensatzstruktur als eine Schemainformation für das Neuerstellen der geschachtelten Datensätze verwenden. Oder gibt es eine bessere Möglichkeit, verschachtelte und strukturierte unveränderbare Daten darzustellen?
Sie könnten das 'reviver' Argument in' Immutable.fromJs' überprüfen, siehe http://stackoverflow.com/questions/28639878/how-to-create-a-map-of-records-from-a-javascript- raw-object-with-immutable-js – OlliM
Um die Frage klarer zu machen, sollten Sie angeben, dass Sie einen neuen Benutzer ({name: 'Foo', Adresse: {street: 'Bar', city: 'Baz'}}) wollen. Adresse instanceof Adresse, um wahr zu sein. – Andy