Class GenericJson

All Implemented Interfaces:
Cloneable, Map<String,Object>
Direct Known Subclasses:
AbstractJsonFactoryTest.AnimalGenericJson, AbstractJsonFactoryTest.ExtendsGenericJson, JsonWebToken.Header, JsonWebToken.Payload

public class GenericJson extends GenericData implements Cloneable
Generic JSON data that stores all unknown key name/value pairs.

Subclasses can declare fields for known data keys using the Key annotation. Each field can be of any visibility (private, package private, protected, or public) and must not be static. null unknown data key names are not allowed, but null data values are allowed.

Implementation is not thread-safe. For a thread-safe choice instead use an implementation of ConcurrentMap.

Since:
1.0
  • Field Details

    • jsonFactory

      private JsonFactory jsonFactory
      JSON factory or null for none.
  • Constructor Details

    • GenericJson

      public GenericJson()
  • Method Details

    • getFactory

      public final JsonFactory getFactory()
      Returns the JSON factory or null for none.
      Since:
      1.6
    • setFactory

      public final void setFactory(JsonFactory factory)
      Sets the JSON factory or null for none.
      Since:
      1.6
    • toString

      public String toString()
      Overrides:
      toString in class GenericData
    • toPrettyString

      public String toPrettyString() throws IOException
      Returns a pretty-printed serialized JSON string representation or toString() if getFactory() is null.
      Throws:
      IOException
      Since:
      1.6
    • clone

      public GenericJson clone()
      Description copied from class: GenericData
      Makes a "deep" clone of the generic data, in which the clone is completely independent of the original.
      Overrides:
      clone in class GenericData
    • set

      public GenericJson set(String fieldName, Object value)
      Description copied from class: GenericData
      Sets the given field value (may be null) for the given field name. Any existing value for the field will be overwritten. It may be more slightly more efficient than GenericData.put(String, Object) because it avoids accessing the field's original value.

      Overriding is only supported for the purpose of calling the super implementation and changing the return type, but nothing else.

      Overrides:
      set in class GenericData