Spec-Zone.ru › Dart 2

dart:core

Метод splitQueryString

Map<String, String> splitQueryString(
  1. String query,
  2. {Encoding encoding = utf8}
)

Разделяет строку query на карту в соответствии с правилами, указанными для POST-запросов в формате спецификации HTML 4.01, раздел 17.13.4.

Ключ и значение в возвращаемой карте декодированы. Если строка query пустая, возвращается пустая карта.

Ключи в строке запроса, не имеющие значения, сопоставляются с пустой строкой.

Каждый компонент запроса будет декодирован с использованием encoding. По умолчанию используется кодировка UTF-8.

Пример:

final queryStringMap =
    Uri.splitQueryString('limit=10&max=100&search=Dart%20is%20fun');
print(jsonEncode(queryStringMap));
// {"limit":"10","max":"100","search":"Dart is fun"}

Реализация

static Map<String, String> splitQueryString(String query,
    {Encoding encoding = utf8}) {
  return query.split("&").fold({}, (map, element) {
    int index = element.indexOf("=");
    if (index == -1) {
      if (element != "") {
        map[decodeQueryComponent(element, encoding: encoding)] = "";
      }
    } else if (index != 0) {
      var key = element.substring(0, index);
      var value = element.substring(index + 1);
      map[decodeQueryComponent(key, encoding: encoding)] =
          decodeQueryComponent(value, encoding: encoding);
    }
    return map;
  });
}

© 2012 the Dart project authors
Licensed under the BSD 3-Clause "New" or "Revised" License.
https://api.dart.dev/stable/2.18.5/dart-core/Uri/splitQueryString.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API