diff --git a/qqq-backend-core/src/main/java/com/kingsrook/qqq/backend/core/utils/CollectionUtils.java b/qqq-backend-core/src/main/java/com/kingsrook/qqq/backend/core/utils/CollectionUtils.java index 50e4c0f1..3a51e661 100755 --- a/qqq-backend-core/src/main/java/com/kingsrook/qqq/backend/core/utils/CollectionUtils.java +++ b/qqq-backend-core/src/main/java/com/kingsrook/qqq/backend/core/utils/CollectionUtils.java @@ -30,6 +30,10 @@ import java.util.LinkedList; import java.util.List; import java.util.Map; import java.util.function.Function; +import com.fasterxml.jackson.annotation.JsonInclude; +import com.fasterxml.jackson.databind.ObjectMapper; +import com.fasterxml.jackson.databind.SerializationFeature; +import com.fasterxml.jackson.datatype.jsr310.JavaTimeModule; import com.kingsrook.qqq.backend.core.model.data.QRecord; @@ -477,4 +481,20 @@ public class CollectionUtils return (rs); } + + + /******************************************************************************* + ** + *******************************************************************************/ + public static Map objectToMap(Object o) + { + ObjectMapper mapper = new ObjectMapper() + .registerModule(new JavaTimeModule()) + .setSerializationInclusion(JsonInclude.Include.NON_NULL) + .setSerializationInclusion(JsonInclude.Include.NON_EMPTY) + .configure(SerializationFeature.WRITE_DATES_AS_TIMESTAMPS, false); + + return (mapper.convertValue(o, Map.class)); + } + }