ich eine einfache JSON haben, die die IDs der dependentant Objekte contasins ..anordnen JSON in Baumstruktur
var array1=
[
{
"id": 84,
"outputTypeId": 900000000000002,
"previousOutputTypeActivitySeqMappingId": null,
"isRemoved": false,
"isPrimary": false
},
{
"id": 95,
"outputTypeId": 900000000000002,
"previousOutputTypeActivitySeqMappingId": 84,
"isRemoved": false,
"isPrimary": false
},
{
"id": 150,
"outputTypeId": 900000000000002,
"previousOutputTypeActivitySeqMappingId": 95,
"isRemoved": false,
"isPrimary": false
},
{
"id": 160,
"outputTypeId": 900000000000002,
"previousOutputTypeActivitySeqMappingId": 95,
"isRemoved": false,
"isPrimary": false
}
]
ich durch die Identifizierung der „id“ und „previousOutputTypeActivitySeqMappingId“ und drückt auf das unten Format konvertieren wollte es in ein neues Array genannt Artikel
var array1=
[{
"id": 84,
"outputTypeId": 900000000000002,
"previousOutputTypeActivitySeqMappingId": null,
"isRemoved": false,
"isPrimary": false,
"items": [
{
"id": 95,
"outputTypeId": 900000000000002,
"previousOutputTypeActivitySeqMappingId": 84,
"isRemoved": false,
"isPrimary": false,
"items": [
{
"id": 150,
"outputTypeId": 900000000000002,
"previousOutputTypeActivitySeqMappingId": 95,
"isRemoved": false,
"isPrimary": false,
"items": []
},
{
"id": 160,
"outputTypeId": 900000000000002,
"previousOutputTypeActivitySeqMappingId": 95,
"isRemoved": false,
"isPrimary": false,
"items": []
}
]
}
]
}]
der Code, den I ist unten angegeben versucht ... I ein Dummy-Objekt zuerst in dem neuen Format erstellt:
var dummyObj= {
"id": 84,
"outputTypeId": 900000000000002,
"previousOutputTypeActivitySeqMappingId": null,
"isRemoved": false,
"isPrimary": false
}
function populateObj(array1, arrObj) {
for (var i = 0; i < array1.length; i++) {
if (array1[i].id == arrObj.parentActivityId) {
array1[i].items.push(arrObj);
} else {
populateObj(array1[i].items, arrObj);
}
}
};
populateObj(dummyObj);
Da ich am Anfang kein Dummy-Objekt fest codieren möchte. Gibt es eine Möglichkeit, diese Konvertierung mit Javascript zu erreichen?
Danke.
Ich glaube, Sie sollten das nicht tun. Der erste JSON ist eine großartige Datenstruktur. Elemente bleiben über eine logische Zuordnungs-ID verbunden, die leicht durch Array.filter() offengelegt werden kann. – Davuz