0

したがって、アセットをリクエストすると、エンドポイントは次のように応答します。バイオスはほんの一例です。

{
  _embedded: {
    bios: [
      {
        name: 'Blorp Gorp',
        id: 256,
        _links: {},
        arrayCollection: [...],
        objectCollection: [...],
        ...
      },
      ...
    ],
  _links: {},
}

そして、私はそれを次のようなものにフラット化したいのですが、これが理にかなっているかどうかさえわかりません:

{
  results: [256, 257],
  entities: {
    bios: {
      256: {...},
      257: {...}
    },
    arrayCollection: {
      256: [...],
      257: [...]
    },
    objectCollection: {
      256: {...},
      257: {...}
    }
  }
}

しかし、スキーマがエンティティにヒットする前に、スキーマにネストを認識させることはできません。を渡すnormalize(camelizedJson.embedded.bios, bioSchema)と機能しますが、渡すと、normalize(camelizedJson.embedded, bioSchema)を解析したいことを認識できませんbios

別の変数をミドルウェアに渡して、正常に解析するための埋め込みキーを与えることができると思います。

4

2 に答える 2

2

しかし、スキーマがエンティティにヒットする前に、スキーマにネストを認識させることはできません。normalize(camelizedJson.embedded.bios, bioSchema) を渡すと機能しますが、normalize(camelizedJson.embedded, bioSchema) を渡すと、BIOS を解析したいという認識が得られません。

normalize(camelizedJson.embedded, { bios: bioSchema })おそらく代わりに欲しいでしょう。スキーマは、プレーンな JavaScript オブジェクト内にネストできます。次に例を示します。

normalize(camelizedJson.embedded, {
  bios: bioSchema,
  lols: lolSchema,
  wow: arrayOf({
    wat: {
      ugh: ughSchema
    }
  })
})
于 2016-02-27T20:06:49.453 に答える
0

「MyArrayThing」と「MyObjectThing」を定義するスキーマを作成する必要があると思います(ここでは説明のための偽名)「Bio」スキーマ定義で、Normalizr のarrayOf(SomeSchemaObject)関数を使用して「arrayCollection」と「objectCollection」サブフィールドを定義します。次に、単一の Bio オブジェクトがどのように見えるかを定義したら、解析コマンドもおおよそ のようにする必要がありますnormalize(camelizedJson.embedded.bios, arrayOf(Bio))

于 2016-02-26T18:56:02.980 に答える