JSONFormatter (Apache Geode 2.0.2)
Description: declaration: package: org.apache.geode.pdx, class: JSONFormatter

Package org.apache.geode.pdx

# 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 Summary

  Fields
  Modifier and Type
  Field
  Description
  `static final String`
  `JSON_CLASSNAME`
  `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.

- ## Constructor Summary

  Constructors
  Constructor
  Description
  `JSONFormatter()`
  `JSONFormatter(RegionService regionService)`

- ## Method Summary

  Modifier and Type
  Method
  Description
  `static PdxInstance`
  `fromJSON(byte[] jsonByteArray)`
  Converts a Byte Array JSON document into a PdxInstance
  `static PdxInstance`
  `fromJSON(byte[] jsonByteArray, String... identityFields)`
  Converts a Byte Array JSON document into a PdxInstance
  `static PdxInstance`
  `fromJSON(String jsonString)`
  Converts a String JSON document into a PdxInstance
  `static PdxInstance`
  `fromJSON(String jsonString, String... identityFields)`
  Converts a String JSON document into a PdxInstance
  `String`
  `fromPdxInstance(PdxInstance pdxInstance)`
  Converts a PdxInstance into a JSON document
  `RegionService`
  `getRegionService()`
  `static String`
  `toJSON(PdxInstance pdxInstance)`
  Converts a PdxInstance into a JSON document in String form
  `static byte[]`
  `toJSONByteArray(PdxInstance pdxInstance)`
  Converts a PdxInstance into a JSON document in byte-array form
  `byte[]`
  `toJsonByteArrayFromPdxInstance(PdxInstance pdxInstance)`
  Converts a PdxInstance into a JSON document in byte-array form
  `PdxInstance`
  `toPdxInstance(Object json, String... identityFields)`
  Converts a JSON document (String or Byte Array) into a PdxInstance

  ### Methods inherited from class java.lang.Object

  `clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

- ## Field Details

  - ### JSON_CLASSNAME

    public static final String JSON_CLASSNAME
    See Also:
      - Constant Field Values

  - ### 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:
      - Constant Field Values

- ## 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