Как десилизовать JSON для объекта в Kotlin, как в следующем фрагменте Java - PullRequest
0 голосов
/ 08 июля 2019

Я использую Spring boot с Kafka в моем проекте.Я хочу изменить JSON на объект.В моем примере с Java это прекрасно работает:

public ConsumerFactory<String, EmailSent> userConsumerFactory(){
    Map<String, Object> config = new HashMap<>();
    config.put(ConsumerConfig.BOOTSTRAP_SERVERS_CONFIG, "127.0.0.1:9092");
    config.put(ConsumerConfig.GROUP_ID_CONFIG, "group_json");
    config.put(ConsumerConfig.KEY_DESERIALIZER_CLASS_CONFIG, StringDeserializer.class);
    config.put(ConsumerConfig.VALUE_DESERIALIZER_CLASS_CONFIG, JsonDeserializer.class);
    return new DefaultKafkaConsumerFactory<String, User>(config, new StringDeserializer(), new JsonDeserializer<>(EmailSent.class));
}

Когда я пытаюсь сделать similair в Kotlin, я получаю красную линию в JsonDeserializer <> (EmailSent :: class)).Мой код котлина:

    @Bean
fun userConsumerConfigs(): Map<String, Any> {
    val props = HashMap<String, Any>()
    props[ConsumerConfig.BOOTSTRAP_SERVERS_CONFIG] = "$host:$port"
    props[ConsumerConfig.KEY_DESERIALIZER_CLASS_CONFIG] = StringDeserializer::class.java
    props[ConsumerConfig.VALUE_DESERIALIZER_CLASS_CONFIG] = JsonDeserializer::class.java
    props[ConsumerConfig.GROUP_ID_CONFIG] = "helloworld"

    return props
}

@Bean
fun userConsumerFactory(): ConsumerFactory<String, EmailSent> {
    return DefaultKafkaConsumerFactory(userConsumerConfigs(), StringDeserializer(), JsonDeserializer<>(EmailSent::class))
}

Есть идеи, что я делаю не так?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...