Ich arbeite gerade an einem großen JavaScript-Projekt und habe Probleme damit, eingehende JSON-Daten (aus dem Backend) mit meinen eigenen JavaScript-Objekten abzugleichen.
Ich verwende das Knockout JavaScript MVVM-Framework und obwohl es ein Mapping-Plugin enthält, erlaubt es mir nicht Eigenschaften neu zuordnen. Ich möchte das erreichen, weil die eingehenden JSON-Daten zu feinkörnig sind und ich meine JS-Objekte "flattern" möchte. Ein Beispiel folgt.
Eingehende Daten.
%Vor%Und ich würde dies gerne wiederholen / abflachen zu:
%Vor%Daher Ich möchte eine Mapping-Konfiguration bereitstellen, die genau angibt, welche eingehenden Eigenschaften denen ausgehenden zugeordnet werden sollen . Ähnlich wie Dozer wird konfiguriert.
Meine Frage ist: Gibt es da draußen Bibliotheken, die in der Lage sind, das zu erreichen, was ich erreichen möchte , oder muss ich dafür eine eigene Bibliothek erstellen?
Das knockoutjs mapping Plugin erlaubt Ihnen genau das:
Im Aufruf ko.mapping.fromJS
können Sie ein Mapping-Objekt angeben, mit dem die enthaltenen Eigenschaften ...
Dies bedeutet, dass bei Verwendung dieses Mappers mit dem Mapping-Plugin jedes Objekt zu einem Objekt verflacht wird, das nur seinen Namen als Observable enthält.
Du benutzt es so:
%Vor% In diesem Fall hat viewModel
nur einen Eigenschaftsnamen.
Sie können mehr über diese Funktion in der offiziellen Dokumentation hier lesen.
Nun, ich denke nicht, dass es eine Bibliothek dafür gibt, da das ziemlich einfach klingt.
Hier ist ein Beispiel:
%Vor%Demo hier: Ссылка
Es ist eine Weile her, dass dieses Thema zuletzt aktualisiert wurde. Da Leute wahrscheinlich immer noch nach Objekt-Objekt-Mappern suchen:
Letztes Jahr habe ich einen Port der C # AutoMapper-Implementierung in TypeScript / JavaScript genau für dieses Szenario erstellt. Ich habe den Code auf GitHub ( Ссылка ) gestellt. Sie können die Bibliothek auch direkt mit dem Paket automapper-ts NPM oder Bower verwenden.
Die Bibliothek ist fast vollständig dokumentiert. Darüber hinaus sind bereits viele Jasmin-Komponententests verfügbar (die Codeabdeckung beträgt ca. 95%). Sie sollten Ihnen eine Erklärung geben, was Sie brauchen.
Ich hoffe, dass diese Bibliothek Ihren Bedürfnissen entspricht. Sollten Sie Fragen und / oder Anmerkungen haben, zögern Sie bitte nicht mich zu kontaktieren!
Tags und Links javascript mapping