Class JSONFormatter

java.lang.Object
org.apache.geode.pdx.JSONFormatter

public class JSONFormatter extends Object

JSONFormatter has a static method fromJSON(String, String...) to convert a JSON document into a PdxInstance and a static method toJSON(PdxInstance) to convert a PdxInstance into a JSON Document.

Using these methods an applications may convert a JSON document into a PdxInstance for storing in the cache. Indexes can then be defined on the PdxInstances so that queries can be performed using OQL. Queries will return PdxInstances and these can be turned back back into JSON documents using JSONFormatter.

JSONFormatter treats values in a json document as number(byte, short, int, long..), string, array, object, 'true', 'false' or 'null'. These correspond to the following java types:

JSON Java
object PdxInstance
arrays LinkedList
BigDecimal BigDecimal
BigInterger BigInteger
Double double
float float
boolean boolean
Integer byte, short or int
null null
  • Field Details

    • JSON_CLASSNAME

      public static final String JSON_CLASSNAME
      See Also:
    • SORT_JSON_FIELD_NAMES_PROPERTY

      public static final String SORT_JSON_FIELD_NAMES_PROPERTY
      By setting "gemfire.sort-json-field-names" to true, enables serialization of JSON field in JSON document to be sorted. That can help to reduce the number of pdx typeId generation if different JSON documents have same fields in the different order.
      See Also:
  • Constructor Details

    • JSONFormatter

      public JSONFormatter()
    • JSONFormatter

      public JSONFormatter(RegionService regionService)
  • Method Details

    • getRegionService

      public RegionService getRegionService()
    • fromJSON

      public static PdxInstance fromJSON(String jsonString)
      Converts a String JSON document into a PdxInstance
      Parameters:
      jsonString - The JSON String to convert to PDX
      Returns:
      The PdxInstance
      Throws:
      JSONFormatterException - if unable to create the PdxInstance
    • fromJSON

      public static PdxInstance fromJSON(String jsonString, String... identityFields)
      Converts a String JSON document into a PdxInstance
      Parameters:
      jsonString - The JSON String to convert to PDX
      identityFields - Any desired identity fields on the JSON object to be used for equals and hashCode computations
      Returns:
      The PdxInstance
      Throws:
      JSONFormatterException - if unable to create the PdxInstance
    • fromJSON

      public static PdxInstance fromJSON(byte[] jsonByteArray)
      Converts a Byte Array JSON document into a PdxInstance
      Parameters:
      jsonByteArray - The JSON Object as a byte array to convert to PDX
      Returns:
      The PdxInstance
      Throws:
      JSONFormatterException - if unable to create the PdxInstance
    • fromJSON

      public static PdxInstance fromJSON(byte[] jsonByteArray, String... identityFields)
      Converts a Byte Array JSON document into a PdxInstance
      Parameters:
      jsonByteArray - The JSON Object as a byte array to convert to PDX
      identityFields - Any desired identity fields on the JSON object to be used for equals and hashCode computations
      Returns:
      The PdxInstance
      Throws:
      JSONFormatterException - if unable to create the PdxInstance
    • toPdxInstance

      public PdxInstance toPdxInstance(Object json, String... identityFields)
      Converts a JSON document (String or Byte Array) into a PdxInstance
      Parameters:
      json - The JSON document (String or Byte Array) to convert to PDX
      identityFields - Any desired identity fields on the JSON object to be used for equals and hashCode computations
      Returns:
      The PdxInstance
      Throws:
      JSONFormatterException - if unable to create the PdxInstance
    • toJSON

      public static String toJSON(PdxInstance pdxInstance)
      Converts a PdxInstance into a JSON document in String form
      Parameters:
      pdxInstance - the JSON string.
      Returns:
      the JSON string JSONFormatterException if unable to create the JSON document
    • fromPdxInstance

      public String fromPdxInstance(PdxInstance pdxInstance)
      Converts a PdxInstance into a JSON document
      Parameters:
      pdxInstance - The PdxInstance to convert
      Returns:
      the JSON string
      Throws:
      JSONFormatterException - if unable to create the JSON document
    • toJSONByteArray

      public static byte[] toJSONByteArray(PdxInstance pdxInstance)
      Converts a PdxInstance into a JSON document in byte-array form
      Parameters:
      pdxInstance - The PdxInstance to convert
      Returns:
      the JSON byte array
      Throws:
      JSONFormatterException - if unable to create the JSON document
    • toJsonByteArrayFromPdxInstance

      public byte[] toJsonByteArrayFromPdxInstance(PdxInstance pdxInstance)
      Converts a PdxInstance into a JSON document in byte-array form
      Parameters:
      pdxInstance - The PdxInstance to convert
      Returns:
      the JSON byte array
      Throws:
      JSONFormatterException - if unable to create the JSON document