toMap static method
Executes the process of converting data to be stored on the server.
The data to be saved to the server is passed to value
.
The converted data is passed to the return value.
サーバーへ保存するデータを変換する処理を実行します。
value
にサーバーへ保存するデータを渡します。
戻り値に変換後のデータが渡されます。
Implementation
static DynamicMap toMap(DynamicMap value) {
final res = <String, dynamic>{};
for (final tmp in value.entries) {
final key = tmp.key;
final val = tmp.value;
if (val is List) {
final vRes = <dynamic>[];
for (final v in val) {
final conveter = _converters.firstWhereOrNull((e) => e.check(v));
if (conveter != null) {
vRes.add(conveter.toJson(v));
} else {
vRes.add(v);
}
}
res[key] = vRes;
} else if (val is Set) {
final vRes = <dynamic>{};
for (final v in val) {
final conveter = _converters.firstWhereOrNull((e) => e.check(v));
if (conveter != null) {
vRes.add(conveter.toJson(v));
} else {
vRes.add(v);
}
}
res[key] = vRes;
} else if (val is Map) {
final vRes = <String, dynamic>{};
for (final v in val.entries) {
final conveter =
_converters.firstWhereOrNull((e) => e.check(v.value));
if (conveter != null) {
vRes[v.key] = conveter.toJson(v.value);
} else {
vRes[v.key] = v.value;
}
}
res[key] = vRes;
} else {
final conveter = _converters.firstWhereOrNull((e) => e.check(val));
if (conveter != null) {
res[key] = conveter.toJson(val);
} else {
res[key] = val;
}
}
}
return Map.unmodifiable(res);
}