query static method

String query(
  1. Map<String, dynamic> map
)

Encodes map as a URL query string.

Obj.query({'name': 'Anna', 'tags': ['a', 'b']});
// 'name=Anna&tags%5B0%5D=a&tags%5B1%5D=b'

Implementation

static String query(Map<String, dynamic> map) {
  final parts = <String>[];
  void encode(String key, dynamic value) {
    if (value is Map) {
      value.forEach((k, v) => encode('$key[$k]', v));
    } else if (value is Iterable) {
      var i = 0;
      for (final v in value) {
        encode('$key[${i++}]', v);
      }
    } else {
      parts.add(
        '${Uri.encodeQueryComponent(key)}'
        '=${Uri.encodeQueryComponent(value?.toString() ?? '')}',
      );
    }
  }

  map.forEach(encode);
  return parts.join('&');
}