Я хочу преобразовать ....
From: Convert Map (String, Dynami c)
To: Entry (String title, List children )
объект карты:
Map<String, dynamic> mapData = {
"A": {
"B": {
"C":
{
"data1": "some data1",
"data2": "some data2",
"data3": "some data3",
"data4": "some data 4"
}
}
},
.......
};
]
data = generateRecursiveList (mapData);
// Мне нужны данные в соответствии с объектом вывода
List<Entry> finalList = new List<Entry>();
List<Entry> generateRecursiveList(Map group){
var keylist = group.keys.toList();
var valueslist = group.values.toList();
for(int i=0; i<keylist.length;i++){
Entry entry = new Entry();
entry.title = keylist[i].toString();
List<Entry> childEntries = new List<Entry>();
for(int j=0; i<valueslist[j].length;j++){
if(valueslist[j] is Map){
childEntries.add(generateRecursiveList(valueslist[j])); // Recursive calling the same function to get the children
// I am not sure how i will get this children now
entry.children = childEntries;
}
}
// This is also I am not sure how to add the entries
finalEntries.add(entry);
}
}
выходной объект:
final List<Entry> data = <Entry>[
Entry( 'A', <Entry>[
Entry( 'B',<Entry>[
Entry( 'C',<Entry>[
Entry( 'some data 1'),
Entry( 'some data 2'),
Entry( 'some data 3'),
Entry( 'some data 4')
])
])
]),
....
];
Я попытался написать рекурсивную функцию, но не смог преобразовать эти вложенные карты в список.