diff --git a/kafka-producer/pom.xml b/kafka-producer/pom.xml index 6300d17..cbeb06c 100644 --- a/kafka-producer/pom.xml +++ b/kafka-producer/pom.xml @@ -74,6 +74,10 @@ com.fasterxml.jackson.core jackson-databind + + com.fasterxml.jackson.datatype + jackson-datatype-jdk8 + org.slf4j slf4j-api diff --git a/kafka-producer/src/test/java/com/networknt/kafka/producer/ProduceRequestTest.java b/kafka-producer/src/test/java/com/networknt/kafka/producer/ProduceRequestTest.java new file mode 100644 index 0000000..3b0f402 --- /dev/null +++ b/kafka-producer/src/test/java/com/networknt/kafka/producer/ProduceRequestTest.java @@ -0,0 +1,35 @@ +package com.networknt.kafka.producer; +import com.fasterxml.jackson.core.JsonProcessingException; +import com.fasterxml.jackson.databind.JsonNode; +import com.fasterxml.jackson.databind.ObjectMapper; +import com.fasterxml.jackson.datatype.jdk8.Jdk8Module; +import org.junit.jupiter.api.*; + +import java.util.ArrayList; +import java.util.List; +import java.util.Optional; + +/** + * Test the JSON serialization for the object with the Jackson ObjectMapper + * + * @author Steve Hu + */ +public class ProduceRequestTest { + @Test + public void testToJson() throws JsonProcessingException { + ObjectMapper mapper = new ObjectMapper(); + mapper.registerModule(new Jdk8Module()); + String json = "{\"key1\":\"value1\",\"key2\":\"value2\"}"; + JsonNode jsonNode = mapper.readTree(json); + ProduceRecord produceRecord = new ProduceRecord(); + produceRecord.setValue(Optional.of(jsonNode)); + List records = new ArrayList<>(); + records.add(produceRecord); + ProduceRequest produceRequest = new ProduceRequest(); + produceRequest.setRecords(records); + String result = mapper.writeValueAsString(produceRequest); + System.out.println(result); + + } + +} diff --git a/pom.xml b/pom.xml index a266acc..6536473 100644 --- a/pom.xml +++ b/pom.xml @@ -218,6 +218,11 @@ jackson-datatype-jsr310 ${version.jackson} + + com.fasterxml.jackson.datatype + jackson-datatype-jdk8 + ${version.jackson} + org.slf4j slf4j-api