Почему я не могу передать определенные выражения параметру закрытия, помеченному @convetion (block)?

Основная цель здесь - отправить упорядоченный объект JSON в качестве ответа. Для этого нам не нужен javax.json.JsonObject. Мы могли бы создать упорядоченный json как строку. Сначала создайте LinkedHashMap со всеми парами значений ключей в требуемом порядке. Затем сгенерируйте json в строке, как показано ниже. Это намного проще с Java 8.

public Response getJSONResponse() {
    Map<String, String> linkedHashMap = new LinkedHashMap<>();
    linkedHashMap.put("A", "1");
    linkedHashMap.put("B", "2");
    linkedHashMap.put("C", "3");

    String jsonStr = linkedHashMap.entrySet().stream()
            .map(x -> "\"" + x.getKey() + "\":\"" + x.getValue() + "\"")
            .collect(Collectors.joining(",", "{", "}"));
    return Response.ok(jsonStr).build();
}

Ответ возврата этой функцией будет следующим: {"A":"1","B":"2","C":"3"}

3
задан Sweeper 17 January 2019 в 07:15
поделиться