com.hazelcast.com.eclipsesource.json

## Class JsonValue

- java.lang.Object
- - com.hazelcast.com.eclipsesource.json.JsonValue

- All Implemented Interfaces:
    Serializable
  Direct Known Subclasses:
    JsonArray, JsonObject

      public abstract class JsonValue
      extends Object
      implements Serializable

  Represents a JSON value. This can be a JSON object, an array, a number, a string, or one of the literals true, false, and null.

  The literals true, false, and null are represented by the constants `TRUE`, `FALSE`, and `NULL`.

  JSON objects and arrays are represented by the subtypes `JsonObject` and `JsonArray`. Instances of these types can be created using the public constructors of these classes.

  Instances that represent JSON numbers, strings and boolean values can be created using the static factory methods `valueOf(String)`, `valueOf(long)`, `valueOf(double)`, etc.

  In order to find out whether an instance of this class is of a certain type, the methods `isObject()`, `isArray()`, `isString()`, `isNumber()` etc. can be used.

  If the type of a JSON value is known, the methods `asObject()`, `asArray()`, `asString()`, `asInt()`, etc. can be used to get this value directly in the appropriate target type.

  This class is not supposed to be extended by clients.

  See Also:
    Serialized Form

- - ### Field Summary

    Fields
    Modifier and Type | Field and Description
    --- | ---
    `static JsonValue` | `FALSE` Deprecated. Use `Json.FALSE` instead
    `static JsonValue` | `NULL` Deprecated. Use `Json.NULL` instead
    `static JsonValue` | `TRUE` Deprecated. Use `Json.TRUE` instead

  - ### Method Summary

    All Methods Static Methods Instance Methods Concrete Methods Deprecated Methods
    Modifier and Type | Method and Description
    --- | ---
    `JsonArray` | `asArray()` Returns this JSON value as `JsonArray`, assuming that this value represents a JSON array.
    `boolean` | `asBoolean()` Returns this JSON value as a `boolean` value, assuming that this value is either `true` or `false`.
    `double` | `asDouble()` Returns this JSON value as a `double` value, assuming that this value represents a JSON number.
    `float` | `asFloat()` Returns this JSON value as a `float` value, assuming that this value represents a JSON number.
    `int` | `asInt()` Returns this JSON value as an `int` value, assuming that this value represents a JSON number that can be interpreted as Java `int`.
    `long` | `asLong()` Returns this JSON value as a `long` value, assuming that this value represents a JSON number that can be interpreted as Java `long`.
    `JsonObject` | `asObject()` Returns this JSON value as `JsonObject`, assuming that this value represents a JSON object.
    `String` | `asString()` Returns this JSON value as String, assuming that this value represents a JSON string.
    `boolean` | `equals(Object object)` Indicates whether some other object is "equal to" this one according to the contract specified in `Object.equals(Object)`.
    `int` | `hashCode()`
    `boolean` | `isArray()` Detects whether this value represents a JSON array.
    `boolean` | `isBoolean()` Detects whether this value represents a boolean value.
    `boolean` | `isFalse()` Detects whether this value represents the JSON literal `false`.
    `boolean` | `isNull()` Detects whether this value represents the JSON literal `null`.
    `boolean` | `isNumber()` Detects whether this value represents a JSON number.
    `boolean` | `isObject()` Detects whether this value represents a JSON object.
    `boolean` | `isString()` Detects whether this value represents a JSON string.
    `boolean` | `isTrue()` Detects whether this value represents the JSON literal `true`.
    `static JsonValue` | `readFrom(Reader reader)` Deprecated. Use `Json.parse(Reader)` instead
    `static JsonValue` | `readFrom(String text)` Deprecated. Use `Json.parse(String)` instead
    `String` | `toString()` Returns the JSON string for this value in its minimal form, without any additional whitespace.
    `String` | `toString(WriterConfig config)` Returns the JSON string for this value using the given formatting.
    `static JsonValue` | `valueOf(boolean value)` Deprecated. Use `Json.value()` instead
    `static JsonValue` | `valueOf(double value)` Deprecated. Use `Json.value()` instead
    `static JsonValue` | `valueOf(float value)` Deprecated. Use `Json.value()` instead
    `static JsonValue` | `valueOf(int value)` Deprecated. Use `Json.value()` instead
    `static JsonValue` | `valueOf(long value)` Deprecated. Use `Json.value()` instead
    `static JsonValue` | `valueOf(String string)` Deprecated. Use `Json.value()` instead
    `void` | `writeTo(Writer writer)` Writes the JSON representation of this value to the given writer in its minimal form, without any additional whitespace.
    `void` | `writeTo(Writer writer, WriterConfig config)` Writes the JSON representation of this value to the given writer using the given formatting.

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

      `clone, finalize, getClass, notify, notifyAll, wait, wait, wait`

- - ### Field Detail

    - #### TRUE

          @Deprecated
          public static final JsonValue TRUE

      Deprecated. Use `Json.TRUE` instead
      Represents the JSON literal `true`.

    - #### FALSE

          @Deprecated
          public static final JsonValue FALSE

      Deprecated. Use `Json.FALSE` instead
      Represents the JSON literal `false`.

    - #### NULL

          @Deprecated
          public static final JsonValue NULL

      Deprecated. Use `Json.NULL` instead
      Represents the JSON literal `null`.

  - ### Method Detail

    - #### readFrom

          @Deprecated
          public static JsonValue readFrom(Reader reader)
                                                throws IOException

      Deprecated. Use `Json.parse(Reader)` instead
      Reads a JSON value from the given reader.

      Characters are read in chunks and buffered internally, therefore wrapping an existing reader in an additional `BufferedReader` does not improve reading performance.

      Parameters:
        `reader` - the reader to read the JSON value from
      Returns:
        the JSON value that has been read
      Throws:
        `IOException` - if an I/O error occurs in the reader
        `ParseException` - if the input is not valid JSON

    - #### readFrom

          @Deprecated
          public static JsonValue readFrom(String text)

      Deprecated. Use `Json.parse(String)` instead
      Reads a JSON value from the given string.
      Parameters:
        `text` - the string that contains the JSON value
      Returns:
        the JSON value that has been read
      Throws:
        `ParseException` - if the input is not valid JSON

    - #### valueOf

          @Deprecated
          public static JsonValue valueOf(int value)

      Deprecated. Use `Json.value()` instead
      Returns a JsonValue instance that represents the given `int` value.
      Parameters:
        `value` - the value to get a JSON representation for
      Returns:
        a JSON value that represents the given value

    - #### valueOf

          @Deprecated
          public static JsonValue valueOf(long value)

      Deprecated. Use `Json.value()` instead
      Returns a JsonValue instance that represents the given `long` value.
      Parameters:
        `value` - the value to get a JSON representation for
      Returns:
        a JSON value that represents the given value

    - #### valueOf

          @Deprecated
          public static JsonValue valueOf(float value)

      Deprecated. Use `Json.value()` instead
      Returns a JsonValue instance that represents the given `float` value.
      Parameters:
        `value` - the value to get a JSON representation for
      Returns:
        a JSON value that represents the given value

    - #### valueOf

          @Deprecated
          public static JsonValue valueOf(double value)

      Deprecated. Use `Json.value()` instead
      Returns a JsonValue instance that represents the given `double` value.
      Parameters:
        `value` - the value to get a JSON representation for
      Returns:
        a JSON value that represents the given value

    - #### valueOf

          @Deprecated
          public static JsonValue valueOf(String string)

      Deprecated. Use `Json.value()` instead
      Returns a JsonValue instance that represents the given string.
      Parameters:
        `string` - the string to get a JSON representation for
      Returns:
        a JSON value that represents the given string

    - #### valueOf

          @Deprecated
          public static JsonValue valueOf(boolean value)

      Deprecated. Use `Json.value()` instead
      Returns a JsonValue instance that represents the given `boolean` value.
      Parameters:
        `value` - the value to get a JSON representation for
      Returns:
        a JSON value that represents the given value

    - #### isObject

          public boolean isObject()

      Detects whether this value represents a JSON object. If this is the case, this value is an instance of `JsonObject`.
      Returns:
        `true` if this value is an instance of JsonObject

    - #### isArray

          public boolean isArray()

      Detects whether this value represents a JSON array. If this is the case, this value is an instance of `JsonArray`.
      Returns:
        `true` if this value is an instance of JsonArray

    - #### isNumber

          public boolean isNumber()

      Detects whether this value represents a JSON number.
      Returns:
        `true` if this value represents a JSON number

    - #### isString

          public boolean isString()

      Detects whether this value represents a JSON string.
      Returns:
        `true` if this value represents a JSON string

    - #### isBoolean

          public boolean isBoolean()

      Detects whether this value represents a boolean value.
      Returns:
        `true` if this value represents either the JSON literal `true` or `false`

    - #### isTrue

          public boolean isTrue()

      Detects whether this value represents the JSON literal `true`.
      Returns:
        `true` if this value represents the JSON literal `true`

    - #### isFalse

          public boolean isFalse()

      Detects whether this value represents the JSON literal `false`.
      Returns:
        `true` if this value represents the JSON literal `false`

    - #### isNull

          public boolean isNull()

      Detects whether this value represents the JSON literal `null`.
      Returns:
        `true` if this value represents the JSON literal `null`

    - #### asObject

          public JsonObject asObject()

      Returns this JSON value as `JsonObject`, assuming that this value represents a JSON object. If this is not the case, an exception is thrown.
      Returns:
        a JSONObject for this value
      Throws:
        `UnsupportedOperationException` - if this value is not a JSON object

    - #### asArray

          public JsonArray asArray()

      Returns this JSON value as `JsonArray`, assuming that this value represents a JSON array. If this is not the case, an exception is thrown.
      Returns:
        a JSONArray for this value
      Throws:
        `UnsupportedOperationException` - if this value is not a JSON array

    - #### asInt

          public int asInt()

      Returns this JSON value as an `int` value, assuming that this value represents a JSON number that can be interpreted as Java `int`. If this is not the case, an exception is thrown.

      To be interpreted as Java `int`, the JSON number must neither contain an exponent nor a fraction part. Moreover, the number must be in the `Integer` range.

      Returns:
        this value as `int`
      Throws:
        `UnsupportedOperationException` - if this value is not a JSON number
        `NumberFormatException` - if this JSON number can not be interpreted as `int` value

    - #### asLong

          public long asLong()

      Returns this JSON value as a `long` value, assuming that this value represents a JSON number that can be interpreted as Java `long`. If this is not the case, an exception is thrown.

      To be interpreted as Java `long`, the JSON number must neither contain an exponent nor a fraction part. Moreover, the number must be in the `Long` range.

      Returns:
        this value as `long`
      Throws:
        `UnsupportedOperationException` - if this value is not a JSON number
        `NumberFormatException` - if this JSON number can not be interpreted as `long` value

    - #### asFloat

          public float asFloat()

      Returns this JSON value as a `float` value, assuming that this value represents a JSON number. If this is not the case, an exception is thrown.

      If the JSON number is out of the `Float` range, `Float.POSITIVE_INFINITY` or `Float.NEGATIVE_INFINITY` is returned.

      Returns:
        this value as `float`
      Throws:
        `UnsupportedOperationException` - if this value is not a JSON number

    - #### asDouble

          public double asDouble()

      Returns this JSON value as a `double` value, assuming that this value represents a JSON number. If this is not the case, an exception is thrown.

      If the JSON number is out of the `Double` range, `Double.POSITIVE_INFINITY` or `Double.NEGATIVE_INFINITY` is returned.

      Returns:
        this value as `double`
      Throws:
        `UnsupportedOperationException` - if this value is not a JSON number

    - #### asString

          public String asString()

      Returns this JSON value as String, assuming that this value represents a JSON string. If this is not the case, an exception is thrown.
      Returns:
        the string represented by this value
      Throws:
        `UnsupportedOperationException` - if this value is not a JSON string

    - #### asBoolean

          public boolean asBoolean()

      Returns this JSON value as a `boolean` value, assuming that this value is either `true` or `false`. If this is not the case, an exception is thrown.
      Returns:
        this value as `boolean`
      Throws:
        `UnsupportedOperationException` - if this value is neither `true` or `false`

    - #### writeTo

          public void writeTo(Writer writer)
                       throws IOException

      Writes the JSON representation of this value to the given writer in its minimal form, without any additional whitespace.

      Writing performance can be improved by using a `BufferedWriter`.

      Parameters:
        `writer` - the writer to write this value to
      Throws:
        `IOException` - if an I/O error occurs in the writer

    - #### writeTo

          public void writeTo(Writer writer,
                              WriterConfig config)
                       throws IOException

      Writes the JSON representation of this value to the given writer using the given formatting.

      Writing performance can be improved by using a `BufferedWriter`.

      Parameters:
        `writer` - the writer to write this value to
        `config` - a configuration that controls the formatting or `null` for the minimal form
      Throws:
        `IOException` - if an I/O error occurs in the writer

    - #### toString

          public String toString()

      Returns the JSON string for this value in its minimal form, without any additional whitespace. The result is guaranteed to be a valid input for the method `readFrom(String)` and to create a value that is equal to this object.
      Overrides:
        `toString` in class `Object`
      Returns:
        a JSON string that represents this value

    - #### toString

          public String toString(WriterConfig config)

      Returns the JSON string for this value using the given formatting.
      Parameters:
        `config` - a configuration that controls the formatting or `null` for the minimal form
      Returns:
        a JSON string that represents this value

    - #### equals

          public boolean equals(Object object)

      Indicates whether some other object is "equal to" this one according to the contract specified in `Object.equals(Object)`.

      Two JsonValues are considered equal if and only if they represent the same JSON text. As a consequence, two given JsonObjects may be different even though they contain the same set of names with the same values, but in a different order.

      Overrides:
        `equals` in class `Object`
      Parameters:
        `object` - the reference object with which to compare
      Returns:
        true if this object is the same as the object argument; false otherwise

    - #### hashCode

          public int hashCode()

      Overrides:
        `hashCode` in class `Object`

Copyright © 2018. All rights reserved.