Class JSON

  • All Implemented Interfaces:
    com.fasterxml.jackson.core.Versioned

    public class JSON
    extends java.lang.Object
    implements com.fasterxml.jackson.core.Versioned
    Main entry point for functionality.

    Note that instances are fully immutable, and thereby thread-safe.

    • Nested Class Summary

      Nested Classes 
      Modifier and Type Class Description
      static class  JSON.Feature
      Simple on/off (enabled/disabled) features for JSON; used for simple configuration aspects.
    • Field Summary

      Fields 
      Modifier and Type Field Description
      protected int _features  
      protected com.fasterxml.jackson.core.JsonFactory _jsonFactory
      Underlying JSON factory used for creating Streaming parsers and generators.
      protected com.fasterxml.jackson.core.PrettyPrinter _prettyPrinter  
      protected JSONReader _reader
      Blueprint instance of the reader to use for reading JSON as simple Objects.
      protected com.fasterxml.jackson.core.TreeCodec _treeCodec
      Optional handler for TreeNode values: if defined, we can read and write TreeNode instances that codec supports.
      protected JSONWriter _writer
      Blueprint isntance of the writer to use for writing JSON given simple Objects.
      static JSON std
      Singleton instance with standard, default configuration.
    • Constructor Summary

      Constructors 
      Modifier Constructor Description
        JSON()  
      protected JSON​(int features, com.fasterxml.jackson.core.JsonFactory jsonF, com.fasterxml.jackson.core.TreeCodec trees)  
      protected JSON​(int features, com.fasterxml.jackson.core.JsonFactory jsonF, com.fasterxml.jackson.core.TreeCodec trees, JSONReader r, JSONWriter w, com.fasterxml.jackson.core.PrettyPrinter pp)  
    • Method Summary

      All Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      protected void _close​(java.io.Closeable cl)  
      protected void _close​(java.io.Closeable cl, java.lang.Exception e)  
      protected <T> T _closeWithError​(java.io.Closeable cl, java.lang.Exception e)  
      protected com.fasterxml.jackson.core.JsonGenerator _config​(com.fasterxml.jackson.core.JsonGenerator g)  
      protected com.fasterxml.jackson.core.JsonParser _config​(com.fasterxml.jackson.core.JsonParser p)  
      protected JSONReader _defaultReader​(int features, com.fasterxml.jackson.core.TreeCodec tc, TypeDetector td)  
      protected TypeDetector _defaultTypeDetector​(int features)  
      protected JSONWriter _defaultWriter​(int features, com.fasterxml.jackson.core.TreeCodec tc, TypeDetector td)  
      protected com.fasterxml.jackson.core.JsonParser _initForReading​(com.fasterxml.jackson.core.JsonParser p)  
      protected void _noTreeCodec​(java.lang.String msg)  
      protected com.fasterxml.jackson.core.JsonParser _parser​(java.lang.Object source)  
      protected JSONReader _readerForOperation​(com.fasterxml.jackson.core.JsonParser p)  
      protected JSON _with​(int features)
      Internal mutant factory method used for constructing
      protected JSON _with​(int features, com.fasterxml.jackson.core.JsonFactory jsonF, com.fasterxml.jackson.core.TreeCodec trees, JSONReader reader, JSONWriter writer, com.fasterxml.jackson.core.PrettyPrinter pp)  
      protected void _writeAndClose​(java.lang.Object value, com.fasterxml.jackson.core.JsonGenerator g)  
      protected JSONWriter _writerForOperation​(com.fasterxml.jackson.core.JsonGenerator gen)  
      java.lang.Object anyFrom​(java.lang.Object source)
      Read method that will take given JSON Source (of one of supported types), read contents and map it to one of simple mappings (Map for JSON Objects, List for JSON Arrays, String for JSON Strings, null for JSON null, Boolean for JSON booleans and Number for JSON numbers.
      java.lang.Object[] arrayFrom​(java.lang.Object source)  
      <T> T[] arrayOfFrom​(java.lang.Class<T> type, java.lang.Object source)  
      byte[] asBytes​(java.lang.Object value)  
      com.fasterxml.jackson.core.ObjectCodec asCodec()
      Convenience method for constructing an adapter that uses this instance as a ObjectCodec
      java.lang.String asString​(java.lang.Object value)  
      <T> T beanFrom​(java.lang.Class<T> type, java.lang.Object source)  
      JSONComposer<byte[]> composeBytes()  
      <C extends java.util.Collection<java.lang.Object>>
      CollectionComposer<?,​C>
      composeCollection​(C collection)  
      CollectionComposer<?,​java.util.List<java.lang.Object>> composeList()  
      MapComposer<?> composeMap()  
      MapComposer<?> composeMap​(java.util.Map<java.lang.String,​java.lang.Object> map)  
      JSONComposer<java.lang.String> composeString()  
      JSONComposer<java.io.OutputStream> composeTo​(java.io.File f)  
      JSONComposer<java.io.OutputStream> composeTo​(java.io.OutputStream out)  
      JSONComposer<java.io.OutputStream> composeTo​(java.io.Writer w)  
      JSONComposer<java.io.OutputStream> composeUsing​(com.fasterxml.jackson.core.JsonGenerator gen)  
      <T extends com.fasterxml.jackson.core.TreeNode>
      T
      createArrayNode()
      Convenience method, equivalent to:
      <T extends com.fasterxml.jackson.core.TreeNode>
      T
      createObjectNode()
      Convenience method, equivalent to:
      com.fasterxml.jackson.core.JsonFactory getStreamingFactory()  
      com.fasterxml.jackson.core.TreeCodec getTreeCodec()  
      boolean isEnabled​(JSON.Feature f)  
      java.util.List<java.lang.Object> listFrom​(java.lang.Object source)  
      <T> java.util.List<T> listOfFrom​(java.lang.Class<T> type, java.lang.Object source)  
      <T> java.util.Map<T,​java.lang.Object> mapFrom​(java.lang.Object source)  
      <T extends com.fasterxml.jackson.core.TreeNode>
      com.fasterxml.jackson.core.TreeNode
      treeFrom​(java.lang.Object source)
      Method for reading content as a JSON Tree (of type that configured TreeCodec, see with(TreeCodec)) supports.
      com.fasterxml.jackson.core.Version version()  
      JSON with​(com.fasterxml.jackson.core.JsonFactory f)  
      JSON with​(com.fasterxml.jackson.core.PrettyPrinter pp)
      Mutant factory for constructing an instance with specified PrettyPrinter, and returning new instance (or, if there would be no change, this instance).
      JSON with​(com.fasterxml.jackson.core.TreeCodec c)
      Mutant factory for constructing an instance with specified TreeCodec, and returning new instance (or, if there would be no change, this instance).
      JSON with​(CollectionBuilder b)
      Mutant factory for constructing an instance with specified CollectionBuilder, and returning new instance (or, if there would be no change, this instance).
      JSON with​(JSONReader r)
      Mutant factory for constructing an instance with specified JSONReader, and returning new instance (or, if there would be no change, this instance).
      JSON with​(JSONWriter w)
      Mutant factory for constructing an instance with specified JSONWriter, and returning new instance (or, if there would be no change, this instance).
      JSON with​(MapBuilder b)
      Mutant factory for constructing an instance with specified MapBuilder, and returning new instance (or, if there would be no change, this instance).
      JSON with​(JSON.Feature... features)
      Mutant factory for constructing an instance with specified features enabled.
      JSON with​(JSON.Feature feature, boolean state)
      Mutant factory for constructing an instance with specified feature enabled or disabled (depending on state), and returning an instance with that setting; this may either be this instance (if feature already had specified state), or a newly constructed instance.
      JSON without​(JSON.Feature... features)
      Mutant factory for constructing an instance with specified features disabled.
      void write​(java.lang.Object value, com.fasterxml.jackson.core.JsonGenerator gen)  
      void write​(java.lang.Object value, java.io.File f)  
      void write​(java.lang.Object value, java.io.OutputStream out)  
      void write​(java.lang.Object value, java.io.Writer w)  
      • Methods inherited from class java.lang.Object

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

      • std

        public static final JSON std
        Singleton instance with standard, default configuration. May be used with direct references like:
           String json = JSON.std.asString(map);
        
      • _jsonFactory

        protected final com.fasterxml.jackson.core.JsonFactory _jsonFactory
        Underlying JSON factory used for creating Streaming parsers and generators.
      • _treeCodec

        protected final com.fasterxml.jackson.core.TreeCodec _treeCodec
        Optional handler for TreeNode values: if defined, we can read and write TreeNode instances that codec supports.
      • _reader

        protected final JSONReader _reader
        Blueprint instance of the reader to use for reading JSON as simple Objects.
      • _writer

        protected final JSONWriter _writer
        Blueprint isntance of the writer to use for writing JSON given simple Objects.
      • _features

        protected final int _features
      • _prettyPrinter

        protected final com.fasterxml.jackson.core.PrettyPrinter _prettyPrinter
    • Constructor Detail

      • JSON

        public JSON()
      • JSON

        protected JSON​(int features,
                       com.fasterxml.jackson.core.JsonFactory jsonF,
                       com.fasterxml.jackson.core.TreeCodec trees)
      • JSON

        protected JSON​(int features,
                       com.fasterxml.jackson.core.JsonFactory jsonF,
                       com.fasterxml.jackson.core.TreeCodec trees,
                       JSONReader r,
                       JSONWriter w,
                       com.fasterxml.jackson.core.PrettyPrinter pp)
    • Method Detail

      • _defaultTypeDetector

        protected TypeDetector _defaultTypeDetector​(int features)
      • _defaultReader

        protected JSONReader _defaultReader​(int features,
                                            com.fasterxml.jackson.core.TreeCodec tc,
                                            TypeDetector td)
      • _defaultWriter

        protected JSONWriter _defaultWriter​(int features,
                                            com.fasterxml.jackson.core.TreeCodec tc,
                                            TypeDetector td)
      • asCodec

        public com.fasterxml.jackson.core.ObjectCodec asCodec()
        Convenience method for constructing an adapter that uses this instance as a ObjectCodec
      • version

        public com.fasterxml.jackson.core.Version version()
        Specified by:
        version in interface com.fasterxml.jackson.core.Versioned
      • with

        public JSON with​(com.fasterxml.jackson.core.JsonFactory f)
      • with

        public JSON with​(com.fasterxml.jackson.core.TreeCodec c)
        Mutant factory for constructing an instance with specified TreeCodec, and returning new instance (or, if there would be no change, this instance).
      • with

        public JSON with​(JSONReader r)
        Mutant factory for constructing an instance with specified JSONReader, and returning new instance (or, if there would be no change, this instance).
      • with

        public JSON with​(JSONWriter w)
        Mutant factory for constructing an instance with specified JSONWriter, and returning new instance (or, if there would be no change, this instance).
      • with

        public JSON with​(com.fasterxml.jackson.core.PrettyPrinter pp)
        Mutant factory for constructing an instance with specified PrettyPrinter, and returning new instance (or, if there would be no change, this instance).
      • with

        public JSON with​(MapBuilder b)
        Mutant factory for constructing an instance with specified MapBuilder, and returning new instance (or, if there would be no change, this instance).
      • with

        public JSON with​(CollectionBuilder b)
        Mutant factory for constructing an instance with specified CollectionBuilder, and returning new instance (or, if there would be no change, this instance).
      • with

        public JSON with​(JSON.Feature feature,
                         boolean state)
        Mutant factory for constructing an instance with specified feature enabled or disabled (depending on state), and returning an instance with that setting; this may either be this instance (if feature already had specified state), or a newly constructed instance.
      • with

        public JSON with​(JSON.Feature... features)
        Mutant factory for constructing an instance with specified features enabled.
      • without

        public JSON without​(JSON.Feature... features)
        Mutant factory for constructing an instance with specified features disabled.
      • _with

        protected final JSON _with​(int features)
        Internal mutant factory method used for constructing
      • _with

        protected final JSON _with​(int features,
                                   com.fasterxml.jackson.core.JsonFactory jsonF,
                                   com.fasterxml.jackson.core.TreeCodec trees,
                                   JSONReader reader,
                                   JSONWriter writer,
                                   com.fasterxml.jackson.core.PrettyPrinter pp)
      • getTreeCodec

        public com.fasterxml.jackson.core.TreeCodec getTreeCodec()
      • getStreamingFactory

        public com.fasterxml.jackson.core.JsonFactory getStreamingFactory()
      • isEnabled

        public final boolean isEnabled​(JSON.Feature f)
      • write

        public void write​(java.lang.Object value,
                          com.fasterxml.jackson.core.JsonGenerator gen)
                   throws java.io.IOException,
                          JSONObjectException
        Throws:
        java.io.IOException
        JSONObjectException
      • composeList

        public CollectionComposer<?,​java.util.List<java.lang.Object>> composeList()
      • composeCollection

        public <C extends java.util.Collection<java.lang.Object>> CollectionComposer<?,​C> composeCollection​(C collection)
      • composeMap

        public MapComposer<?> composeMap​(java.util.Map<java.lang.String,​java.lang.Object> map)
      • listOfFrom

        public <T> java.util.List<T> listOfFrom​(java.lang.Class<T> type,
                                                java.lang.Object source)
                                         throws java.io.IOException,
                                                JSONObjectException
        Throws:
        java.io.IOException
        JSONObjectException
      • arrayOfFrom

        public <T> T[] arrayOfFrom​(java.lang.Class<T> type,
                                   java.lang.Object source)
                            throws java.io.IOException,
                                   JSONObjectException
        Throws:
        java.io.IOException
        JSONObjectException
      • mapFrom

        public <T> java.util.Map<T,​java.lang.Object> mapFrom​(java.lang.Object source)
                                                            throws java.io.IOException,
                                                                   JSONObjectException
        Throws:
        java.io.IOException
        JSONObjectException
      • anyFrom

        public java.lang.Object anyFrom​(java.lang.Object source)
                                 throws java.io.IOException
        Read method that will take given JSON Source (of one of supported types), read contents and map it to one of simple mappings (Map for JSON Objects, List for JSON Arrays, String for JSON Strings, null for JSON null, Boolean for JSON booleans and Number for JSON numbers.

        Supported source types include:

        • InputStream
        • Reader
        • File
        • URL
        • String
        • byte[]
        • char[]
        Throws:
        java.io.IOException
      • treeFrom

        public <T extends com.fasterxml.jackson.core.TreeNode> com.fasterxml.jackson.core.TreeNode treeFrom​(java.lang.Object source)
                                                                                                     throws java.io.IOException,
                                                                                                            JSONObjectException
        Method for reading content as a JSON Tree (of type that configured TreeCodec, see with(TreeCodec)) supports.
        Throws:
        java.io.IOException
        JSONObjectException
        Since:
        2.8
      • createArrayNode

        public <T extends com.fasterxml.jackson.core.TreeNode> T createArrayNode()
        Convenience method, equivalent to:
           getTreeCodec().createArrayNode();
        
        Note that for call to succeed a TreeCodec must have been configured with this instance using with(TreeCodec) method.
        Since:
        2.8
      • createObjectNode

        public <T extends com.fasterxml.jackson.core.TreeNode> T createObjectNode()
        Convenience method, equivalent to:
           getTreeCodec().createObjectNode();
        
        Note that for call to succeed a TreeCodec must have been configured with this instance using with(TreeCodec) method.
        Since:
        2.8
      • _writeAndClose

        protected final void _writeAndClose​(java.lang.Object value,
                                            com.fasterxml.jackson.core.JsonGenerator g)
                                     throws java.io.IOException
        Throws:
        java.io.IOException
      • _writerForOperation

        protected JSONWriter _writerForOperation​(com.fasterxml.jackson.core.JsonGenerator gen)
      • _readerForOperation

        protected JSONReader _readerForOperation​(com.fasterxml.jackson.core.JsonParser p)
      • _parser

        protected com.fasterxml.jackson.core.JsonParser _parser​(java.lang.Object source)
                                                         throws java.io.IOException,
                                                                JSONObjectException
        Throws:
        java.io.IOException
        JSONObjectException
      • _initForReading

        protected com.fasterxml.jackson.core.JsonParser _initForReading​(com.fasterxml.jackson.core.JsonParser p)
                                                                 throws java.io.IOException
        Throws:
        java.io.IOException
      • _config

        protected com.fasterxml.jackson.core.JsonGenerator _config​(com.fasterxml.jackson.core.JsonGenerator g)
      • _config

        protected com.fasterxml.jackson.core.JsonParser _config​(com.fasterxml.jackson.core.JsonParser p)
      • _close

        protected void _close​(java.io.Closeable cl)
      • _close

        protected void _close​(java.io.Closeable cl,
                              java.lang.Exception e)
                       throws java.io.IOException
        Throws:
        java.io.IOException
      • _closeWithError

        protected <T> T _closeWithError​(java.io.Closeable cl,
                                        java.lang.Exception e)
                                 throws java.io.IOException
        Throws:
        java.io.IOException
        Since:
        2.8.2
      • _noTreeCodec

        protected void _noTreeCodec​(java.lang.String msg)