removeEmptyField function

Map<String, Object?> removeEmptyField(
  1. Map<String, Object?> raw
)

Implementation

Map<String, Object?> removeEmptyField(Map<String, Object?> raw) {
  final Map<String, Object?> ret = {};
  for (final kv in raw.entries) {
    final v = kv.value;
    if (v != null) {
      if (v is List) {
        if (v.isNotEmpty) {
          final newList = [];
          for (final item in v) {
            if (item != null) {
              if (item is Map<String, Object?>) {
                newList.add(removeEmptyField(item));
              } else {
                newList.add(item);
              }
            }
          }
          ret[kv.key] = newList;
        } else {
          //removed
        }
      } else if (v is Map<String, Object?>) {
        final newV = removeEmptyField(v);
        if (newV.isNotEmpty) {
          ret[kv.key] = newV;
        } else {
          //removed
        }
      } else if (v is String) {
        if (v.trim().isNotEmpty) {
          ret[kv.key] = v;
        }
      } else {
        ret[kv.key] = v;
      }
    }
  }
  return ret;
}