Ключ карты: значение в Java Spring Boot - PullRequest
0 голосов
/ 26 марта 2020

Моя полезная нагрузка, полученная от Kafka, имеет формат

"payload":{"name":notification,"key":"2637","message":"This is a notif"}

Как мне отобразить ее в коде Spring Boot? Я знаю, если бы это было JSON, я бы создал класс, чтобы отобразить его. Но как мне это сделать здесь?

Пожалуйста, сообщите.

1 Ответ

0 голосов
/ 26 марта 2020

Для этой задачи вы можете использовать библиотеку Джексона

import com.fasterxml.jackson.core.JsonProcessingException;
import com.fasterxml.jackson.databind.JsonNode;
import com.fasterxml.jackson.databind.ObjectMapper;

public class JsonNodeUse {

    public static void main(String[] args) throws JsonProcessingException {
        String json = "{\n" +
                "\t\"payload\": {\n" +
                "\t\t\"name\": \"notification\",\n" +
                "\t\t\"key\": \"2637\",\n" +
                "\t\t\"message\": \"This is a notif\"\n" +
                "\t}\n" +
                "}";

        ObjectMapper objectMapper = new ObjectMapper();
        JsonNode jsonNode = objectMapper.readTree(json);
        JsonNode node = jsonNode.get("payload");
        System.out.println(objectMapper.writeValueAsString(node));
    }
}

Зависимость POM

    <!-- https://mvnrepository.com/artifact/com.fasterxml.jackson.core/jackson-core -->
    <dependency>
        <groupId>com.fasterxml.jackson.core</groupId>
        <artifactId>jackson-core</artifactId>
        <version>2.10.0</version>
    </dependency>
    <!-- https://mvnrepository.com/artifact/com.fasterxml.jackson.core/jackson-databind -->
    <dependency>
        <groupId>com.fasterxml.jackson.core</groupId>
        <artifactId>jackson-databind</artifactId>
        <version>2.10.0</version>
    </dependency>
...