So erstellen Sie einen benutzerdefinierten Serializer für Ember-Daten
Ich habe eine API, die JSON zurückgibt, das nicht richtig für Embers Verbrauch formatiert ist. Stattdessen (was Glut erwartet):
{ events: [
{ id: 1, title: "Event 1", description: "Learn Ember" },
{ id: 2, title: "Event 2", description: "Learn Ember 2" }
]}
Ich bekomme:
{ events: [
{ event: { id: 1, "Event 1", description: "Learn Ember" }},
{ event: { id: 2, "Event 2", description: "Learn Ember 2" }}
]}
Wenn ich das richtig verstanden habe, muss ich einen benutzerdefinierten Serializer erstellen, um den JSON zu ändern.
var store = DS.Store.create({
adapter: DS.RESTAdapter.create({
serializer: DS.Serializer.create({
// which hook should I override??
})
})
});
Ich habe den Codekommentar zum DS.Serializer gelesen, verstehe aber nicht, wie ich das erreichen kann, was ich will ...
Wie kann ich es tun?
ps: mein ziel ist es zu machenApp.Event.find()
Arbeit. Derzeit bekomme ichUncaught Error: assertion failed: Your server returned a hash with the key 0 but you have no mapping for it
. Aus diesem Grund muss ich den empfangenen JSON korrigieren.
bearbeiten: So habe ich es vorerst zum Laufen gebracht:
extractMany: function(loader, json, type, records) {
var root = this.rootForType(type),
roots = this.pluralize(root);
json = reformatJSON(root, roots, json);
this._super(loader, json, type, records);
}