Я мог бы просто разделить строку на &
и обрезать list[]=
[...]
Вы наверняка могли бы сделать это. Просто не забудьте URL-декодировать параметры после разделения строки запроса;)
[...], но мне интересно, есть ли более элегантный способ сделать это (некоторые библиотека, которая может десериализовать ее до List
)
Если вы ищете библиотеку, вы можете использовать Apache URLEncodedUtils
:
String queryString = "list[]=a&list[]=b&list[]=c&list[]=d&list[]=e";
List<NameValuePair> valuePairs = URLEncodedUtils.parse(queryString, StandardCharsets.UTF_8);
Map<String, List<String>> queryParams = valuePairs.stream()
.collect(groupingBy(NameValuePair::getName, mapping(NameValuePair::getValue, toList())));
List<String> strings = queryParams.get("list[]");