私はjsonレスポンスを持っています。このjsonデータを再帰と簡約で簡素化したいと思います。私はこの時点で固まった関数を書く。私はすべてのデータ要素を削除し、データ名なしで新しいオブジェクトを作成したい。Javascript再帰JSONデータを正規化
私のJSONデータはこの
[
{
"city": {
"data": {
"id": 649442,
"country_id": 54,
"state_id": 682,
"city_name": "Prague",
"state_name": "Praha"
}
},
"country": {
"data": {
"id": 54,
"data": {
"country_name": "Czech Republic",
"short_country": "CZ",
"olympic_code": "CZE"
}
}
}
}
]
のようなもので、私の関数はここにある:で
function normalizeData(object) {
return Object.keys(object).reduce((finalObject, objectKey) => {
if (object[objectKey] && object[objectKey].data) {
finalObject[objectKey] = object[objectKey].data;
if (Array.isArray(finalObject[objectKey].data)) {
finalObject[objectKey] = object[objectKey].data.map(item => {
return normalizeData(item);
});
} else {
finalObject[objectKey] = normalizeData(object[objectKey].data);
}
} else {
finalObject[objectKey] = object[objectKey];
}
return finalObject;
}, {});
};
と私はまだデータオブジェクトを取得しています。だからどこで私は間違っているのか。それとももっと良い方法がありますか?
ようこそSO Tan!明確にするために、特定のキーを削除し、新しい、きれいにされたオブジェクトを取得します。右?しかし、 'id = 54'でどう対処すればよいでしょうか? – Rajesh
はい、私はIDので、タイプのデータを避けたい:54は、この ようにする必要があります{{ 「ID」: 「国」54 } } –
あなたが入力の例を置くことができれば、それが役立つだろうと期待される出力。ありがとう。 – acontell