0
私のAPIから戻るJSONがあります。normalizr新しいプロパティとグループを設定する
[{
"_id": "id1",
"userId": "u1",
"createdOn": "2017-11-13T19:24:05.269Z"
}, {
"_id": "id2",
"userId": "u2",
"createdOn": "2017-11-13T19:23:59.777Z"
}, {
"_id": "id3",
"userId": "u3",
"createdOn": "2017-11-09T17:34:14.507Z"
}, {
"_id": "id4",
"userId": "u4",
"createdOn": "2017-11-08T18:15:54.303Z"
}
]
まず私は([0] createdOn.split( "T")のような)createdOnを分割する必要があるとだけ、文字列、日付が含まれている新しいプロパティCreatedDateに設定します。次に、新しいプロパティcreatedDateに基づいてこれを分類し、同じ日付に作成されたアイテムにグループ化します。だから私は次のような構造を得ようとしています。
{
"history": {
"2017-11-08": {
"id4": {
"_id": "id4",
"userId": "u4",
"createdOn": "2017-11-08T18:15:54.303Z",
"createdDate": "2017-11-08"
}
},
"2017-11-09": {
"id3": {
"_id": "id3",
"userId": "u3",
"createdOn": "2017-11-09T17:34:14.507Z",
"createdDate": "2017-11-09"
}
},
"2017-11-13": {
"id1": {
"_id": "id1",
"userId": "u1",
"createdOn": "2017-11-13T19:24:05.269Z",
"createdDate": "2017-11-13"
},
"id2": {
"_id": "id2",
"userId": "u2",
"createdOn": "2017-11-13T19:23:59.777Z",
"createdDate": "2017-11-13"
}
}
}
}
は、私はまた、複数のスキーマ
export const historySchema = new schema.Entity(
"history",
{},
{ idAttribute: "_id" },
);
export const historyGroupingSchema = new schema.Entity(
"history",
{ el: [historySchema] },
{ idAttribute: "createdDate" },
);
normalize(history, [
historyGroupingSchema,
])
(spliting日付時刻文字列のために) 'processStrategy' が異なるオプションを試してみましたが、動作しません。 normalizrでこれを行う方法。
を持つオブジェクトを取得したら
momentjs
特別に入手可能な他の良いJSライブラリがあるフォーマットを変更することができますこれはnormalizr [https://github.com/paularmstrong/normalizr]によって行われました。私が言及したものは、日付コンポーネントを取得するのに十分です(「T」で分割して最初の要素を取ります) – Edayan