Class JsonUtilImpl

  • All Implemented Interfaces:
    JsonUtil

    public class JsonUtilImpl
    extends java.lang.Object
    implements JsonUtil
    Implementation of JsonUtil that allows the user to provide a configured Jackson ObjectMapper. All IOExceptions are caught, wrapped with context, and rethrown as RuntimeExceptions.
    • Field Summary

      Fields 
      Modifier and Type Field Description
      static java.lang.String DEFAULT_ENCODING_UTF_8  
      private static com.fasterxml.jackson.core.type.TypeReference<java.util.List<java.lang.Object>> listTypeReference  
      private static com.fasterxml.jackson.core.type.TypeReference<java.util.Map<java.lang.String,​java.lang.Object>> mapTypeReference  
      private com.fasterxml.jackson.databind.ObjectMapper objectMapper  
      private com.fasterxml.jackson.databind.ObjectWriter prettyPrintWriter  
    • Constructor Summary

      Constructors 
      Constructor Description
      JsonUtilImpl()  
      JsonUtilImpl​(com.fasterxml.jackson.databind.ObjectMapper objectMapper)
      By allowing the user to provide an ObjectMapper, it can be configured with knowledge of how to marshall and un-marshall your domain objects.
    • Method Summary

      All Methods Static Methods Instance Methods Concrete Methods Deprecated Methods 
      Modifier and Type Method Description
      java.util.List<java.lang.Object> classpathToList​(java.lang.String classPath)  
      java.util.Map<java.lang.String,​java.lang.Object> classpathToMap​(java.lang.String classPath)  
      java.lang.Object classpathToObject​(java.lang.String classPath)  
      <T> T classpathToType​(java.lang.String classPath, com.fasterxml.jackson.core.type.TypeReference<T> typeRef)  
      <T> T classpathToType​(java.lang.String classPath, java.lang.Class<T> aClass)  
      java.lang.Object cloneJson​(java.lang.Object obj)
      Makes a deep copy of a Map object by converting it to a String and then back onto stock JSON objects.
      static void configureStockJoltObjectMapper​(com.fasterxml.jackson.databind.ObjectMapper objectMapper)  
      java.util.List<java.lang.Object> filepathToList​(java.lang.String filePath)  
      java.util.Map<java.lang.String,​java.lang.Object> filepathToMap​(java.lang.String filePath)  
      java.lang.Object filepathToObject​(java.lang.String filePath)  
      <T> T fileToType​(java.lang.String filePath, com.fasterxml.jackson.core.type.TypeReference<T> typeRef)  
      <T> T fileToType​(java.lang.String filePath, java.lang.Class<T> aClass)  
      <T> T jsonTo​(java.io.InputStream in, com.fasterxml.jackson.core.type.TypeReference<T> typeRef)
      Deprecated.
      <T> T jsonTo​(java.lang.String json, com.fasterxml.jackson.core.type.TypeReference<T> typeRef)
      Deprecated.
      java.util.List<java.lang.Object> jsonToList​(java.io.InputStream in)  
      java.util.List<java.lang.Object> jsonToList​(java.lang.String json)  
      java.util.List<java.lang.Object> jsonToList​(java.lang.String json, java.lang.String charset)  
      java.util.Map<java.lang.String,​java.lang.Object> jsonToMap​(java.io.InputStream in)  
      java.util.Map<java.lang.String,​java.lang.Object> jsonToMap​(java.lang.String json)  
      java.util.Map<java.lang.String,​java.lang.Object> jsonToMap​(java.lang.String json, java.lang.String charset)  
      java.lang.Object jsonToObject​(java.io.InputStream in)  
      java.lang.Object jsonToObject​(java.lang.String json)  
      java.lang.Object jsonToObject​(java.lang.String json, java.lang.String charset)  
      <T> T streamToType​(java.io.InputStream in, com.fasterxml.jackson.core.type.TypeReference<T> typeRef)  
      <T> T streamToType​(java.io.InputStream in, java.lang.Class<T> aClass)  
      <T> T stringToType​(java.lang.String json, com.fasterxml.jackson.core.type.TypeReference<T> typeRef)  
      <T> T stringToType​(java.lang.String json, java.lang.Class<T> aClass)  
      java.lang.String toJsonString​(java.lang.Object obj)  
      java.lang.String toPrettyJsonString​(java.lang.Object obj)  
      • Methods inherited from class java.lang.Object

        clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
    • Field Detail

      • objectMapper

        private final com.fasterxml.jackson.databind.ObjectMapper objectMapper
      • prettyPrintWriter

        private final com.fasterxml.jackson.databind.ObjectWriter prettyPrintWriter
      • DEFAULT_ENCODING_UTF_8

        public static final java.lang.String DEFAULT_ENCODING_UTF_8
        See Also:
        Constant Field Values
      • mapTypeReference

        private static final com.fasterxml.jackson.core.type.TypeReference<java.util.Map<java.lang.String,​java.lang.Object>> mapTypeReference
      • listTypeReference

        private static final com.fasterxml.jackson.core.type.TypeReference<java.util.List<java.lang.Object>> listTypeReference
    • Constructor Detail

      • JsonUtilImpl

        public JsonUtilImpl​(com.fasterxml.jackson.databind.ObjectMapper objectMapper)
        By allowing the user to provide an ObjectMapper, it can be configured with knowledge of how to marshall and un-marshall your domain objects.
        Parameters:
        objectMapper - a configured Jackson ObjectMapper
      • JsonUtilImpl

        public JsonUtilImpl()
    • Method Detail

      • configureStockJoltObjectMapper

        public static void configureStockJoltObjectMapper​(com.fasterxml.jackson.databind.ObjectMapper objectMapper)
      • jsonToObject

        public java.lang.Object jsonToObject​(java.lang.String json)
        Specified by:
        jsonToObject in interface JsonUtil
      • jsonToObject

        public java.lang.Object jsonToObject​(java.lang.String json,
                                             java.lang.String charset)
        Specified by:
        jsonToObject in interface JsonUtil
      • jsonToObject

        public java.lang.Object jsonToObject​(java.io.InputStream in)
        Specified by:
        jsonToObject in interface JsonUtil
      • jsonToMap

        public java.util.Map<java.lang.String,​java.lang.Object> jsonToMap​(java.lang.String json)
        Specified by:
        jsonToMap in interface JsonUtil
      • jsonToMap

        public java.util.Map<java.lang.String,​java.lang.Object> jsonToMap​(java.lang.String json,
                                                                                java.lang.String charset)
        Specified by:
        jsonToMap in interface JsonUtil
      • jsonToMap

        public java.util.Map<java.lang.String,​java.lang.Object> jsonToMap​(java.io.InputStream in)
        Specified by:
        jsonToMap in interface JsonUtil
      • jsonToList

        public java.util.List<java.lang.Object> jsonToList​(java.lang.String json)
        Specified by:
        jsonToList in interface JsonUtil
      • jsonToList

        public java.util.List<java.lang.Object> jsonToList​(java.lang.String json,
                                                           java.lang.String charset)
        Specified by:
        jsonToList in interface JsonUtil
      • jsonToList

        public java.util.List<java.lang.Object> jsonToList​(java.io.InputStream in)
        Specified by:
        jsonToList in interface JsonUtil
      • filepathToObject

        public java.lang.Object filepathToObject​(java.lang.String filePath)
        Specified by:
        filepathToObject in interface JsonUtil
      • filepathToMap

        public java.util.Map<java.lang.String,​java.lang.Object> filepathToMap​(java.lang.String filePath)
        Specified by:
        filepathToMap in interface JsonUtil
      • filepathToList

        public java.util.List<java.lang.Object> filepathToList​(java.lang.String filePath)
        Specified by:
        filepathToList in interface JsonUtil
      • classpathToObject

        public java.lang.Object classpathToObject​(java.lang.String classPath)
        Specified by:
        classpathToObject in interface JsonUtil
      • classpathToMap

        public java.util.Map<java.lang.String,​java.lang.Object> classpathToMap​(java.lang.String classPath)
        Specified by:
        classpathToMap in interface JsonUtil
      • classpathToList

        public java.util.List<java.lang.Object> classpathToList​(java.lang.String classPath)
        Specified by:
        classpathToList in interface JsonUtil
      • jsonTo

        @Deprecated
        public <T> T jsonTo​(java.io.InputStream in,
                            com.fasterxml.jackson.core.type.TypeReference<T> typeRef)
        Deprecated.
        Description copied from interface: JsonUtil
        Use the streamToType method instead.
        Specified by:
        jsonTo in interface JsonUtil
      • jsonTo

        @Deprecated
        public <T> T jsonTo​(java.lang.String json,
                            com.fasterxml.jackson.core.type.TypeReference<T> typeRef)
        Deprecated.
        Description copied from interface: JsonUtil
        Use the stringToType method instead.
        Specified by:
        jsonTo in interface JsonUtil
      • stringToType

        public <T> T stringToType​(java.lang.String json,
                                  com.fasterxml.jackson.core.type.TypeReference<T> typeRef)
        Specified by:
        stringToType in interface JsonUtil
      • stringToType

        public <T> T stringToType​(java.lang.String json,
                                  java.lang.Class<T> aClass)
        Specified by:
        stringToType in interface JsonUtil
      • classpathToType

        public <T> T classpathToType​(java.lang.String classPath,
                                     com.fasterxml.jackson.core.type.TypeReference<T> typeRef)
        Specified by:
        classpathToType in interface JsonUtil
      • classpathToType

        public <T> T classpathToType​(java.lang.String classPath,
                                     java.lang.Class<T> aClass)
        Specified by:
        classpathToType in interface JsonUtil
      • fileToType

        public <T> T fileToType​(java.lang.String filePath,
                                com.fasterxml.jackson.core.type.TypeReference<T> typeRef)
        Specified by:
        fileToType in interface JsonUtil
      • fileToType

        public <T> T fileToType​(java.lang.String filePath,
                                java.lang.Class<T> aClass)
        Specified by:
        fileToType in interface JsonUtil
      • streamToType

        public <T> T streamToType​(java.io.InputStream in,
                                  com.fasterxml.jackson.core.type.TypeReference<T> typeRef)
        Specified by:
        streamToType in interface JsonUtil
      • streamToType

        public <T> T streamToType​(java.io.InputStream in,
                                  java.lang.Class<T> aClass)
        Specified by:
        streamToType in interface JsonUtil
      • toJsonString

        public java.lang.String toJsonString​(java.lang.Object obj)
        Specified by:
        toJsonString in interface JsonUtil
      • toPrettyJsonString

        public java.lang.String toPrettyJsonString​(java.lang.Object obj)
        Specified by:
        toPrettyJsonString in interface JsonUtil
      • cloneJson

        public java.lang.Object cloneJson​(java.lang.Object obj)
        Description copied from interface: JsonUtil
        Makes a deep copy of a Map object by converting it to a String and then back onto stock JSON objects. Leverages Serialization
        Specified by:
        cloneJson in interface JsonUtil
        Parameters:
        obj - object tree to copy
        Returns:
        deep copy of the incoming obj