removeEmpty method

JSONString removeEmpty(
  1. JSONString json
)

Implementation

JSONString removeEmpty(JSONString json) {
  json = _trimResultHeader(json);
  dynamic values = jsonDecode(json);

  dynamic _removeEmptyRecursive(dynamic data) {
    if (data is List) {
      data.removeWhere((element) {
        if (element == null) return true;
        if (element is String && element.isEmpty) return true;
        return false;
      });
      for (int i = 0; i < data.length; i++) {
        data[i] = _removeEmptyRecursive(data[i]);
      }
    } else if (data is Map) {
      data.removeWhere((key, value) {
        if (value == null) return true;
        if (value is String && value.isEmpty) return true;
        return false;
      });
      data.forEach((key, value) {
        data[key] = _removeEmptyRecursive(value);
      });
    }
    return data;
  }

  values = _removeEmptyRecursive(values);
  final j = jsonEncode(values);
  return j;
}