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);
  }

Antworten auf die Frage(1)

Ihre Antwort auf die Frage