Как я могу разобрать строку Json в JsonNode неблокирующим способом? - PullRequest
0 голосов
/ 02 июня 2019

Я изучаю реактивное программирование с помощью Spring Webflux и, следовательно, я пытаюсь сделать мой код полностью неблокирующим, чтобы получить все преимущества реактивного приложения.

В настоящее время мой код для метода для анализаJson String для JsonNode для получения определенных значений (в данном случае elementId) выглядит следующим образом:

public Mono<String> readElementIdFromJsonString(String jsonString){
    final JsonNode jsonNode;
    try {
        jsonNode = MAPPER.readTree(jsonString);
    } catch (IOException e) {
        return Mono.error(e);
    }

    final String elementId = jsonNode.get("elementId").asText();

    return Mono.just(elementId);
}

Однако IntelliJ уведомляет меня, что я использую неподходящий вызов метода блокировки с этим кодом:

MAPPER.readTree(jsonString);

Как я могу реализовать этот код неблокирующим способом?Я видел, что начиная с Jackson 2.9+ можно анализировать строку Json неблокирующим асинхронным способом, но я не знаю, как использовать этот API, и я не смог найти пример, как это сделать правильно.

Буду очень признателен, если вы поможете мне решить эту проблему!

...