How to correctly convert MultiValueMap to Json with Jackson

Viewed 22

I am trying to return a Json created from the queries of a request.

For example:

url.com?field1=value1&field2=value2&field1=value3

  • Should return:
"queryString": {
    "field1": [
      "value1",
      "value3"
    ],
    "field2": "value2"
}
  • But what I have is:
"queryString": {
    "field1": [
        "value1",
        "value3"
    ],
    "field2": [
        "value2"
    ]
}

For field2 I want the value to be "value2" and not as an array ["value2"].


The code is:

@JsonGetter("queryString")
public MultiValueMap<String, String> getQueryString() {
    String queryString = Optional.ofNullable(httpRequest.getQueryString()).orElse("");

    // queryString is for our example : field1=value1&field2=value2&field1=value3
    return UriComponentsBuilder.fromUriString("?" + queryString).build().getQueryParams();
}

Should I use a different Collection? Which one?

0 Answers
Related