Я изучаю реактивное программирование с помощью 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, и я не смог найти пример, как это сделать правильно.
Буду очень признателен, если вы поможете мне решить эту проблему!