Interface JsonWriter

    • Method Summary

      All Methods Instance Methods Abstract Methods 
      Modifier and Type Method Description
      void allNames​(PropertyNames names)
      Set the property names that will be used for all json generation.
      void beginArray()
      Write array begin.
      void beginObject()
      Write object begin.
      void close()
      Close the writer.
      void emptyArray()
      Write empty array.
      void endArray()
      Write array end.
      void endObject()
      Write object end.
      void flush()
      Flush the writer.
      void jsonValue​(Object value)
      Write a value that could be any value.
      void markIncomplete()
      Mark the generated json as not completed due to an error.
      void name​(int position)
      Set the next property name to write by position.
      void name​(String name)
      Set the next property name to write.
      void names​(PropertyNames names)
      Set the current property names.
      void nullValue()
      Write null value.
      String path()
      Return the current path.
      void pretty​(boolean pretty)
      Set tp true to output json in pretty format.
      void rawValue​(String value)
      Write raw JSON content.
      boolean serializeEmpty()
      Return true if empty collections should be serialised.
      void serializeEmpty​(boolean serializeEmpty)
      Set to serialise empty collections or not.
      boolean serializeNulls()
      Return true if null values should be serialised.
      void serializeNulls​(boolean serializeNulls)
      Set to serialise null values or not.
      <T> T unwrap​(Class<T> underlying)
      Unwrap the underlying generator being used.
      void value​(boolean value)
      Write a boolean value.
      void value​(byte[] value)
      Write binary content as base64.
      void value​(double value)
      Write a double value.
      void value​(int value)
      Write an int value.
      void value​(long value)
      Write a long value.
      void value​(Boolean value)
      Write a Boolean value.
      void value​(Double value)
      Write a Double value.
      void value​(Integer value)
      Write an Integer value.
      void value​(Long value)
      Write a Long value.
      void value​(String value)
      Write a string value.
      void value​(BigDecimal value)
      Write a BigDecimal value.
      void value​(BigInteger value)
      Write a BigInteger value.
      void writeNewLine()
      Write raw content.
    • Method Detail

      • unwrap

        <T> T unwrap​(Class<T> underlying)
        Unwrap the underlying generator being used.

        We do this to get access to the underlying generator. For the case when using jackson-core we get access to Jackson JsonGenerator and can then do Jackson specific things like set custom escaping.

        
        
             try (JsonWriter writer = jsonb.writer(new StringWriter())) {
        
               // get access to the underlying Jackson JsonGenerator
               var generator = writer.unwrap(JsonGenerator.class)
        
               // do Jackson specific things like ...
               generator.setCharacterEscapes(new HTMLCharacterEscapes());
        
               jsonb.toJson(myBean, writer);
             }
        
         
      • serializeNulls

        void serializeNulls​(boolean serializeNulls)
        Set to serialise null values or not.
      • serializeNulls

        boolean serializeNulls()
        Return true if null values should be serialised.
      • serializeEmpty

        void serializeEmpty​(boolean serializeEmpty)
        Set to serialise empty collections or not.
      • serializeEmpty

        boolean serializeEmpty()
        Return true if empty collections should be serialised.
      • pretty

        void pretty​(boolean pretty)
        Set tp true to output json in pretty format.
      • path

        String path()
        Return the current path.
      • allNames

        void allNames​(PropertyNames names)
        Set the property names that will be used for all json generation.

        These names should be used for all json generation for this generator and set once rather than set per object via names(PropertyNames).

        This is used by view json generation where all the names are known at the point when the view is created (a sort of flattened nested tree).

      • names

        void names​(PropertyNames names)
        Set the current property names.

        This is expected to be called per object after each call to beginObject().

      • name

        void name​(int position)
        Set the next property name to write by position. This uses the already encoded name values of PropertyNames.
      • beginArray

        void beginArray()
        Write array begin.
      • endArray

        void endArray()
        Write array end.
      • emptyArray

        void emptyArray()
        Write empty array.
      • beginObject

        void beginObject()
        Write object begin.
      • endObject

        void endObject()
        Write object end.
      • nullValue

        void nullValue()
        Write null value.
      • value

        void value​(String value)
        Write a string value.
      • value

        void value​(boolean value)
        Write a boolean value.
      • value

        void value​(int value)
        Write an int value.
      • value

        void value​(long value)
        Write a long value.
      • value

        void value​(double value)
        Write a double value.
      • value

        void value​(Boolean value)
        Write a Boolean value.
      • value

        void value​(Integer value)
        Write an Integer value.
      • value

        void value​(Long value)
        Write a Long value.
      • value

        void value​(Double value)
        Write a Double value.
      • value

        void value​(BigDecimal value)
        Write a BigDecimal value.
      • value

        void value​(BigInteger value)
        Write a BigInteger value.
      • value

        void value​(byte[] value)
        Write binary content as base64.
      • jsonValue

        void jsonValue​(Object value)
        Write a value that could be any value.
      • rawValue

        void rawValue​(String value)
        Write raw JSON content.
      • writeNewLine

        void writeNewLine()
        Write raw content. This is typically used to write new line characters for x-json-stream content.
      • flush

        void flush()
        Flush the writer.
        Specified by:
        flush in interface Flushable
      • markIncomplete

        void markIncomplete()
        Mark the generated json as not completed due to an error.

        This typically means not to flush or close an underlying OutputStream which allows it to be reset to then write some error response content instead.