diff --git a/api/src/main/java/io/cloudevents/format/BinaryMarshaller.java b/api/src/main/java/io/cloudevents/format/BinaryMarshaller.java index 51062aa5..709b900b 100644 --- a/api/src/main/java/io/cloudevents/format/BinaryMarshaller.java +++ b/api/src/main/java/io/cloudevents/format/BinaryMarshaller.java @@ -146,9 +146,7 @@ public class BinaryMarshaller
{
.collect(Collectors.toMap(Entry::getKey, Entry::getValue));
})
.headers(BinaryFormatHeaderMapperImpl.mapper()::map)
- .payload((data, headers) -> {
- return Json.encode(data);
- })
+ .payload(Json.marshaller()::marshal)
.build((payload, headers) -> {
return new Format<>(payload, headers);
});
diff --git a/api/src/main/java/io/cloudevents/json/Json.java b/api/src/main/java/io/cloudevents/json/Json.java
index 65c5a88f..a9c3a49a 100644
--- a/api/src/main/java/io/cloudevents/json/Json.java
+++ b/api/src/main/java/io/cloudevents/json/Json.java
@@ -21,10 +21,12 @@ import com.fasterxml.jackson.databind.module.SimpleModule;
import com.fasterxml.jackson.datatype.jdk8.Jdk8Module;
import io.cloudevents.Attributes;
+import io.cloudevents.fun.DataMarshaller;
import io.cloudevents.fun.DataUnmarshaller;
import java.io.InputStream;
import java.time.ZonedDateTime;
+import java.util.Map;
public final class Json {
@@ -116,6 +118,21 @@ public final class Json {
}
};
}
+
+ /**
+ * Creates a JSON Data Marshaller
+ * @param