Ich habe eine JSON-Antwort und ich möchte diese JSON-Daten mit Rekursion vereinfachen und zu reduzieren. Ich schreibe eine Funktion, an dieser Stelle stecke ich fest. Ich möchte alle Datenelemente entfernen und ein neues Objekt ohne Datennamen erstellen.Javascript Rekursion normalisieren JSON-Daten
Meine json Daten wie diese
[
{
"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"
}
}
}
}
]
Und meine Funktion ist hier:
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;
}, {});
};
Am und ich bin immer noch Datenobjekt bekommen. Also, wo mache ich Fehler? Oder gibt es einen besseren Weg, dies zu tun?
Willkommen bei SO Tan! Um Klarheit zu schaffen, möchten Sie bestimmte Schlüssel löschen und ein neues, gereinigtes Objekt erhalten. Recht? Aber was soll mit 'id = 54' geschehen? – Rajesh
Ja, ich mag Typen Daten so id vermeiden: 54 ähnliche sein sollte { „Land“: { „id“: 54 } } –
es würde helfen, wenn Sie ein Beispiel für die Eingabe setzen könnten und die erwartete Ausgabe. Vielen Dank. – acontell