Ich habe Entitäten in sehr verschachtelter JSON, die bereits das normalizr Format folgen, wo die idAttribute ist bereits der Schlüssel in dem das Objekt definiert ist:Normalizr - Wie verschachtelte Einheiten behandeln, die bereits normalisiert sind
groups: [{
id: 'foo',
families: {
smiths: {
people: [{
id: 'sam',
}, {
id: 'jake',
}],
},
jones: {
people: [{
id: 'john',
}, {
id: 'sue',
}],
},
},
}];
In diesem Beispiel Beachten Sie, dass das families
Attribut die ID (smiths
, jones
) verwendet, um die people
zu identifizieren, die ein Array von Objekten mit IDs sind.
Die Schemata für diese aussehen könnte:
const person = new Entity('person');
const family = new Entity('family', {
people: [person],
}, {idAttribute: ???});
const group = new Entity('family', {
family: [family],
});
FRAGE: Gibt es eine Möglichkeit, dass ein idAttribute Schema angeben, der Schlüssel ist, wo sie definiert ist? Mit anderen Worten, wie würde ich das Schema für Family
definieren, da es sich auf groups
und people
bezieht?
Eine andere Frage, gibt es einen Weg zu denormalize
einen abgeflachten Zustand, so dass die Familien families: {[id]: obj}
Muster bleibt gleich wie es in dem Beispiel Json oben ist?
Dies gibt 'Familien' als Schlüssel, nicht die 'Smiths' oder 'Jones' Werte Ich bin nach –
Sorry, falsch gelesen und vergessen Sie müssen 'schema.Values' auf das Objekt der Familien verwenden –
Gibt es eine Möglichkeit Familien nicht als Objekt zurückgeben? Derzeit bekommen wir 'Familien: {smiths: 'Smiths', jones: 'jones'}' was etwas ist, mit dem wir arbeiten können, wäre aber nett, wenn Familien als Array zurückgegeben würde: 'families: ['smiths', ' Jones '] ' –