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