toJson function
dynamic
toJson(
- dynamic source, {
- dynamic container,
Implementation
dynamic toJson(dynamic source, {dynamic container}) {
if (source is num ||
source == null ||
identical(source, true) ||
identical(source, false)) {
return source;
} else if (source is String) {
if (source.isEmpty) return source;
try {
return jsonDecode(source); // can decode nest json object
} catch (e) {
return source;
}
} else if (source is List) {
container ??= [];
container.addAll(
source.map((e) => toJson(e, container: container)).toList(),
);
return container;
} else if (source is Map) {
container ??= {};
for (var entry in source.entries) {
container[entry.key] = toJson(entry.value, container: container);
}
return container;
} else {
return source;
}
}