decodeJson2 method
Implementation
Future<Map<String, List<Map<String, dynamic>>>> decodeJson2(
{required Map<String, dynamic> jsonResponse}) async {
Map<String, List<Map<String, dynamic>>> derived2 =
<String, List<Map<String, dynamic>>>{};
// print('decodeJson2: ${jsonResponse.length}, ${jsonResponse}');
// Sort FormDetails by Sequence
if (jsonResponse.containsKey(ConstantName.formDetails)) {
List<Map<String, dynamic>> formDetails = List<Map<String, dynamic>>.from(
jsonResponse[ConstantName.formDetails]);
if (formDetails.isNotEmpty) {
formDetails.sort((a, b) =>
a[ConstantName.sequence].compareTo(b[ConstantName.sequence]));
// Printing the sorted FormDetails
// print('formDetails: $formDetails');
// --> Next process
for (int i = 0; i < formDetails.length; i++) {
// --> Add keys: formDependable & formApi
formDetails[i].addAll(<String, List<Map<String, dynamic>>>{
ConstantName.formDependable: <Map<String, dynamic>>[],
ConstantName.formApi: <Map<String, dynamic>>[]
});
if (formDetails[i][ConstantName.groupBy] != null) {
derived2
.putIfAbsent(formDetails[i][ConstantName.groupBy],
() => <Map<String, dynamic>>[])
.add(formDetails[i]);
}
}
// print('derived:<1> $derived');
}
}
// --> Next process
if (jsonResponse.containsKey(ConstantName.formDependable)) {
addDataToDerived(
data: List<Map<String, dynamic>>.from(
jsonResponse[ConstantName.formDependable]),
matchKey: ConstantName.columnID,
nestedKey: ConstantName.formDependable,
derived: derived2);
}
// --> Next process
if (jsonResponse.containsKey(ConstantName.formApi)) {
addDataToDerived(
data: List<Map<String, dynamic>>.from(
jsonResponse[ConstantName.formApi]),
matchKey: ConstantName.columnID,
nestedKey: ConstantName.formApi,
derived: derived2);
}
// print('derived:<2> $derived');
// print('derived:<2> ${derived.values.elementAt(derived.length - 2)}');
return derived2;
}