Package com.unboundid.util.json
Class JSONValue
- java.lang.Object
-
- com.unboundid.util.json.JSONValue
-
- All Implemented Interfaces:
java.io.Serializable
- Direct Known Subclasses:
JSONArray
,JSONBoolean
,JSONNull
,JSONNumber
,JSONObject
,JSONString
@NotExtensible @ThreadSafety(level=INTERFACE_THREADSAFE) public abstract class JSONValue extends java.lang.Object implements java.io.Serializable
This class provides the base class for data types that can be used as values in JSON objects and as elements in JSON arrays. The types of values defined in the ECMA-404 specification are:-
The
null
value, as implemented in theJSONNull
class. -
The Boolean
true
andfalse
values, as implemented in theJSONBoolean
class. -
Numeric values, as implemented in the
JSONNumber
class. -
String values, as implemented in the
JSONString
class. -
Object values (consisting of zero or more name-value pairs), as
implemented in the
JSONObject
class. -
Arrays of JSON values, as implemented in the
JSONArray
class.
- See Also:
- Serialized Form
-
-
Constructor Summary
Constructors Constructor Description JSONValue()
-
Method Summary
All Methods Instance Methods Abstract Methods Modifier and Type Method Description abstract void
appendToJSONBuffer(JSONBuffer buffer)
Appends this value to the provided JSON buffer.abstract void
appendToJSONBuffer(java.lang.String fieldName, JSONBuffer buffer)
Appends a field with the given name and this value to the provided JSON buffer.abstract boolean
equals(JSONValue v, boolean ignoreFieldNameCase, boolean ignoreValueCase, boolean ignoreArrayOrder)
Indicates whether this JSON value is considered equal to the provided JSON value, subject to the specified constraints.abstract boolean
equals(java.lang.Object o)
Indicates whether the provided object is equal to this JSON value.abstract int
hashCode()
Retrieves a hash code for this JSON value.abstract java.lang.String
toNormalizedString()
Retrieves a normalized string representation of this value.abstract java.lang.String
toNormalizedString(boolean ignoreFieldNameCase, boolean ignoreValueCase, boolean ignoreArrayOrder)
Retrieves a normalized string representation of this value using the provided settings.abstract void
toNormalizedString(java.lang.StringBuilder buffer)
Appends a normalized string representation of this value to the provided buffer.abstract void
toNormalizedString(java.lang.StringBuilder buffer, boolean ignoreFieldNameCase, boolean ignoreValueCase, boolean ignoreArrayOrder)
Appends a normalized string representation of this value to the provided buffer using the provided settings.abstract java.lang.String
toSingleLineString()
Retrieves a single-line string representation of this value as it should appear in a JSON object, including any necessary quoting, escaping, etc.abstract void
toSingleLineString(java.lang.StringBuilder buffer)
Appends a single-line string representation of this value (as it should appear in a JSON object, including any necessary quoting, escaping, etc.) to the provided buffer.abstract java.lang.String
toString()
Retrieves a string representation of this value as it should appear in a JSON object, including any necessary quoting, escaping, etc.abstract void
toString(java.lang.StringBuilder buffer)
Appends a string representation of this value (as it should appear in a JSON object, including any necessary quoting, escaping, etc.) to the provided buffer.
-
-
-
Constructor Detail
-
JSONValue
public JSONValue()
-
-
Method Detail
-
hashCode
public abstract int hashCode()
Retrieves a hash code for this JSON value.- Overrides:
hashCode
in classjava.lang.Object
- Returns:
- The hash code for this JSON value.
-
equals
public abstract boolean equals(@Nullable java.lang.Object o)
Indicates whether the provided object is equal to this JSON value.- Overrides:
equals
in classjava.lang.Object
- Parameters:
o
- The object to compare against this JSON value.- Returns:
true
if the provided object is considered equal to this JSON value, orfalse
if not.
-
equals
public abstract boolean equals(@NotNull JSONValue v, boolean ignoreFieldNameCase, boolean ignoreValueCase, boolean ignoreArrayOrder)
Indicates whether this JSON value is considered equal to the provided JSON value, subject to the specified constraints. Note that not all constraints will apply to all data types.- Parameters:
v
- The JSON value for which to make the determination. It must not benull
.ignoreFieldNameCase
- Indicates whether to ignore differences in the capitalization of JSON field names.ignoreValueCase
- Indicates whether to ignore differences in the capitalization of JSON values that represent strings.ignoreArrayOrder
- Indicates whether to ignore differences in the order of elements in JSON arrays.- Returns:
true
if this JSON value is considered equal to the provided JSON value (subject to the specified constraints), orfalse
if not.
-
toString
@NotNull public abstract java.lang.String toString()
Retrieves a string representation of this value as it should appear in a JSON object, including any necessary quoting, escaping, etc. If the object containing this value was decoded from a string, then this method will use the same string representation as in that original object. Otherwise, the string representation will be constructed.- Overrides:
toString
in classjava.lang.Object
- Returns:
- A string representation of this value as it should appear in a JSON object.
-
toString
public abstract void toString(@NotNull java.lang.StringBuilder buffer)
Appends a string representation of this value (as it should appear in a JSON object, including any necessary quoting, escaping, etc.) to the provided buffer. If the object containing this value was decoded from a string, then this method will use the same string representation as in that original object. Otherwise, the string representation will be constructed.- Parameters:
buffer
- The buffer to which the information should be appended.
-
toSingleLineString
@NotNull public abstract java.lang.String toSingleLineString()
Retrieves a single-line string representation of this value as it should appear in a JSON object, including any necessary quoting, escaping, etc.- Returns:
- A string representation of this value as it should appear in a JSON object.
-
toSingleLineString
public abstract void toSingleLineString(@NotNull java.lang.StringBuilder buffer)
Appends a single-line string representation of this value (as it should appear in a JSON object, including any necessary quoting, escaping, etc.) to the provided buffer.- Parameters:
buffer
- The buffer to which the information should be appended.
-
toNormalizedString
@NotNull public abstract java.lang.String toNormalizedString()
Retrieves a normalized string representation of this value. All equivalent JSON values must have equivalent normalized representations, even if there are other legal representations for the value.- Returns:
- A normalized string representation of this value.
-
toNormalizedString
public abstract void toNormalizedString(@NotNull java.lang.StringBuilder buffer)
Appends a normalized string representation of this value to the provided buffer. All equivalent JSON values must have equivalent normalized representations, even if there are other legal representations for the value.- Parameters:
buffer
- The buffer to which the information should be appended.
-
toNormalizedString
@NotNull public abstract java.lang.String toNormalizedString(boolean ignoreFieldNameCase, boolean ignoreValueCase, boolean ignoreArrayOrder)
Retrieves a normalized string representation of this value using the provided settings.- Parameters:
ignoreFieldNameCase
- Indicates whether field names should be treated in a case-sensitive (iffalse
) or case-insensitive (iftrue
) manner.ignoreValueCase
- Indicates whether string field values should be treated in a case-sensitive (iffalse
) or case-insensitive (iftrue
) manner.ignoreArrayOrder
- Indicates whether the order of elements in an array should be considered significant (iffalse
) or insignificant (iftrue
).- Returns:
- A normalized string representation of this value.
-
toNormalizedString
public abstract void toNormalizedString(@NotNull java.lang.StringBuilder buffer, boolean ignoreFieldNameCase, boolean ignoreValueCase, boolean ignoreArrayOrder)
Appends a normalized string representation of this value to the provided buffer using the provided settings.- Parameters:
buffer
- The buffer to which the information should be appended.ignoreFieldNameCase
- Indicates whether field names should be treated in a case-sensitive (iffalse
) or case-insensitive (iftrue
) manner.ignoreValueCase
- Indicates whether string field values should be treated in a case-sensitive (iffalse
) or case-insensitive (iftrue
) manner.ignoreArrayOrder
- Indicates whether the order of elements in an array should be considered significant (iffalse
) or insignificant (iftrue
).
-
appendToJSONBuffer
public abstract void appendToJSONBuffer(@NotNull JSONBuffer buffer)
Appends this value to the provided JSON buffer. This will not include a field name, so it should only be used for Boolean value elements in an array.- Parameters:
buffer
- The JSON buffer to which this value should be appended.
-
appendToJSONBuffer
public abstract void appendToJSONBuffer(@NotNull java.lang.String fieldName, @NotNull JSONBuffer buffer)
Appends a field with the given name and this value to the provided JSON buffer.- Parameters:
fieldName
- The name to use for the field.buffer
- The JSON buffer to which this value should be appended.
-
-