Package com.badlogic.gdx.utils
Class JsonValue
java.lang.Object
com.badlogic.gdx.utils.JsonValue
Container for a JSON object, array, string, double, long, boolean, or null.
JsonValue children are a linked list. Iteration of arrays or objects is easily done using an iterator or the next()
field, both shown below. This is much more efficient than accessing children by index when there are many children.
JsonValue map = ...; // Allocates an iterator: for (JsonValue entry : map) System.out.println(entry.name + " = " + entry.asString()); // No allocation: for (JsonValue entry = map.child; entry != null; entry = entry.next) System.out.println(entry.name + " = " + entry.asString());
-
Nested Class Summary
Nested ClassesModifier and TypeClassDescriptionclass
static class
static enum
-
Field Summary
Fields -
Constructor Summary
ConstructorsConstructorDescriptionJsonValue
(boolean value) JsonValue
(double value) JsonValue
(long value) JsonValue
(JsonValue.ValueType type) -
Method Summary
Modifier and TypeMethodDescriptionvoid
Adds the specified value after the last child.void
Sets the name of the specified value and adds it after the last child.boolean
Returns this value as a boolean.boolean[]
Returns the children of this value as a newly allocated boolean array.byte
asByte()
Returns this value as a byte.byte[]
Returns the children of this value as a newly allocated byte array.char
asChar()
Returns this value as a char.char[]
Returns the children of this value as a newly allocated char array.double
asDouble()
Returns this value as a double.double[]
Returns the children of this value as a newly allocated double array.float
asFloat()
Returns this value as a float.float[]
Returns the children of this value as a newly allocated float array.int
asInt()
Returns this value as an int.int[]
Returns the children of this value as a newly allocated int array.long
asLong()
Returns this value as a long.long[]
Returns the children of this value as a newly allocated long array.short
asShort()
Returns this value as a short.short[]
Returns the children of this value as a newly allocated short array.asString()
Returns this value as a string.String[]
Returns the children of this value as a newly allocated String array.child()
Returns the first child for this object or array.get
(int index) Returns the child at the specified index.Returns the child with the specified name.boolean
getBoolean
(int index) Finds the child with the specified index and returns it as a boolean.boolean
getBoolean
(String name) Finds the child with the specified name and returns it as a boolean.boolean
getBoolean
(String name, boolean defaultValue) Finds the child with the specified name and returns it as a boolean.byte
getByte
(int index) Finds the child with the specified index and returns it as a byte.byte
Finds the child with the specified name and returns it as a byte.byte
Finds the child with the specified name and returns it as a byte.char
getChar
(int index) Finds the child with the specified index and returns it as a char.char
Finds the child with the specified name and returns it as a char.char
Finds the child with the specified name and returns it as a char.Finds the child with the specified name and returns its first child.double
getDouble
(int index) Finds the child with the specified index and returns it as a double.double
Finds the child with the specified name and returns it as a double.double
Finds the child with the specified name and returns it as a double.float
getFloat
(int index) Finds the child with the specified index and returns it as a float.float
Finds the child with the specified name and returns it as a float.float
Finds the child with the specified name and returns it as a float.int
getInt
(int index) Finds the child with the specified index and returns it as an int.int
Finds the child with the specified name and returns it as an int.int
Finds the child with the specified name and returns it as an int.long
getLong
(int index) Finds the child with the specified index and returns it as a long.long
Finds the child with the specified name and returns it as a long.long
Finds the child with the specified name and returns it as a long.short
getShort
(int index) Finds the child with the specified index and returns it as a short.short
Finds the child with the specified name and returns it as a short.short
Finds the child with the specified name and returns it as a short.getString
(int index) Finds the child with the specified index and returns it as a string.Finds the child with the specified name and returns it as a string.Finds the child with the specified name and returns it as a string.boolean
Returns true if a child with the specified name exists.boolean
Returns true if a child with the specified name exists and has a child.boolean
isArray()
boolean
boolean
isDouble()
boolean
isEmpty()
Returns true if there are not children in the array or object.boolean
isLong()
boolean
isNull()
boolean
isNumber()
Returns true if this is a double or long value.boolean
isObject()
boolean
isString()
boolean
isValue()
Returns true if this is not an array or object.iterator()
Iterates the children of this array or object.Returns an iterator for the child with the specified name, or an empty iterator if no child is found.name()
Returns the name for this object value.next()
Returns the next sibling of this value.boolean
notEmpty()
Returns true if there are one or more children in the array or object.parent()
Returns the parent for this value.prettyPrint
(JsonValue.PrettyPrintSettings settings) prettyPrint
(JsonWriter.OutputType outputType, int singleLineColumns) void
prettyPrint
(JsonWriter.OutputType outputType, Writer writer) More efficient thanprettyPrint(PrettyPrintSettings)
butJsonValue.PrettyPrintSettings.singleLineColumns
andJsonValue.PrettyPrintSettings.wrapNumericArrays
are not supported.prev()
Returns the previous sibling of this value.void
remove()
Removes this value from its parent.remove
(int index) Removes the child with the specified index.Removes the child with the specified name.require
(int index) Returns the child at the specified index.Returns the child with the specified name.void
set
(boolean value) void
void
void
void
Replaces an existing child with the same name as the specified value, else adds it after the last child.void
Sets the name of the specified value and replaces an existing child with the same name, else adds it after the last child.void
void
Sets the next sibling of this value.void
Sets the next sibling of this value.void
setType
(JsonValue.ValueType type) int
size()
Deprecated.toJson
(JsonWriter.OutputType outputType) toString()
trace()
Returns a human readable string representing the path from the root of the JSON object graph to this value.type()
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
Methods inherited from interface java.lang.Iterable
forEach, spliterator
-
Field Details
-
Constructor Details
-
JsonValue
-
JsonValue
- Parameters:
value
- May be null.
-
JsonValue
public JsonValue(double value) -
JsonValue
public JsonValue(long value) -
JsonValue
-
JsonValue
-
JsonValue
public JsonValue(boolean value) -
JsonValue
-
-
Method Details
-
get
Returns the child at the specified index. This requires walking the linked list to the specified entry, seeJsonValue
for how to iterate efficiently.- Returns:
- May be null.
-
get
Returns the child with the specified name.- Returns:
- May be null.
-
has
Returns true if a child with the specified name exists. -
iterator
Returns an iterator for the child with the specified name, or an empty iterator if no child is found. -
require
Returns the child at the specified index. This requires walking the linked list to the specified entry, seeJsonValue
for how to iterate efficiently.- Throws:
IllegalArgumentException
- if the child was not found.
-
require
Returns the child with the specified name.- Throws:
IllegalArgumentException
- if the child was not found.
-
remove
Removes the child with the specified index. This requires walking the linked list to the specified entry, seeJsonValue
for how to iterate efficiently.- Returns:
- May be null.
-
remove
Removes the child with the specified name.- Returns:
- May be null.
-
remove
public void remove()Removes this value from its parent. -
notEmpty
public boolean notEmpty()Returns true if there are one or more children in the array or object. -
isEmpty
public boolean isEmpty()Returns true if there are not children in the array or object. -
size
Deprecated.Usesize
instead. Returns this number of children in the array or object. -
asString
Returns this value as a string.- Returns:
- May be null if this value is null.
- Throws:
IllegalStateException
- if this an array or object.
-
asFloat
public float asFloat()Returns this value as a float.- Throws:
IllegalStateException
- if this an array or object.
-
asDouble
public double asDouble()Returns this value as a double.- Throws:
IllegalStateException
- if this an array or object.
-
asLong
public long asLong()Returns this value as a long.- Throws:
IllegalStateException
- if this an array or object.
-
asInt
public int asInt()Returns this value as an int.- Throws:
IllegalStateException
- if this an array or object.
-
asBoolean
public boolean asBoolean()Returns this value as a boolean.- Throws:
IllegalStateException
- if this an array or object.
-
asByte
public byte asByte()Returns this value as a byte.- Throws:
IllegalStateException
- if this an array or object.
-
asShort
public short asShort()Returns this value as a short.- Throws:
IllegalStateException
- if this an array or object.
-
asChar
public char asChar()Returns this value as a char.- Throws:
IllegalStateException
- if this an array or object.
-
asStringArray
Returns the children of this value as a newly allocated String array.- Throws:
IllegalStateException
- if this is not an array.
-
asFloatArray
public float[] asFloatArray()Returns the children of this value as a newly allocated float array.- Throws:
IllegalStateException
- if this is not an array.
-
asDoubleArray
public double[] asDoubleArray()Returns the children of this value as a newly allocated double array.- Throws:
IllegalStateException
- if this is not an array.
-
asLongArray
public long[] asLongArray()Returns the children of this value as a newly allocated long array.- Throws:
IllegalStateException
- if this is not an array.
-
asIntArray
public int[] asIntArray()Returns the children of this value as a newly allocated int array.- Throws:
IllegalStateException
- if this is not an array.
-
asBooleanArray
public boolean[] asBooleanArray()Returns the children of this value as a newly allocated boolean array.- Throws:
IllegalStateException
- if this is not an array.
-
asByteArray
public byte[] asByteArray()Returns the children of this value as a newly allocated byte array.- Throws:
IllegalStateException
- if this is not an array.
-
asShortArray
public short[] asShortArray()Returns the children of this value as a newly allocated short array.- Throws:
IllegalStateException
- if this is not an array.
-
asCharArray
public char[] asCharArray()Returns the children of this value as a newly allocated char array.- Throws:
IllegalStateException
- if this is not an array.
-
hasChild
Returns true if a child with the specified name exists and has a child. -
getChild
Finds the child with the specified name and returns its first child.- Returns:
- May be null.
-
getString
Finds the child with the specified name and returns it as a string. Returns defaultValue if not found.- Parameters:
defaultValue
- May be null.
-
getFloat
Finds the child with the specified name and returns it as a float. Returns defaultValue if not found. -
getDouble
Finds the child with the specified name and returns it as a double. Returns defaultValue if not found. -
getLong
Finds the child with the specified name and returns it as a long. Returns defaultValue if not found. -
getInt
Finds the child with the specified name and returns it as an int. Returns defaultValue if not found. -
getBoolean
Finds the child with the specified name and returns it as a boolean. Returns defaultValue if not found. -
getByte
Finds the child with the specified name and returns it as a byte. Returns defaultValue if not found. -
getShort
Finds the child with the specified name and returns it as a short. Returns defaultValue if not found. -
getChar
Finds the child with the specified name and returns it as a char. Returns defaultValue if not found. -
getString
Finds the child with the specified name and returns it as a string.- Throws:
IllegalArgumentException
- if the child was not found.
-
getFloat
Finds the child with the specified name and returns it as a float.- Throws:
IllegalArgumentException
- if the child was not found.
-
getDouble
Finds the child with the specified name and returns it as a double.- Throws:
IllegalArgumentException
- if the child was not found.
-
getLong
Finds the child with the specified name and returns it as a long.- Throws:
IllegalArgumentException
- if the child was not found.
-
getInt
Finds the child with the specified name and returns it as an int.- Throws:
IllegalArgumentException
- if the child was not found.
-
getBoolean
Finds the child with the specified name and returns it as a boolean.- Throws:
IllegalArgumentException
- if the child was not found.
-
getByte
Finds the child with the specified name and returns it as a byte.- Throws:
IllegalArgumentException
- if the child was not found.
-
getShort
Finds the child with the specified name and returns it as a short.- Throws:
IllegalArgumentException
- if the child was not found.
-
getChar
Finds the child with the specified name and returns it as a char.- Throws:
IllegalArgumentException
- if the child was not found.
-
getString
Finds the child with the specified index and returns it as a string.- Throws:
IllegalArgumentException
- if the child was not found.
-
getFloat
public float getFloat(int index) Finds the child with the specified index and returns it as a float.- Throws:
IllegalArgumentException
- if the child was not found.
-
getDouble
public double getDouble(int index) Finds the child with the specified index and returns it as a double.- Throws:
IllegalArgumentException
- if the child was not found.
-
getLong
public long getLong(int index) Finds the child with the specified index and returns it as a long.- Throws:
IllegalArgumentException
- if the child was not found.
-
getInt
public int getInt(int index) Finds the child with the specified index and returns it as an int.- Throws:
IllegalArgumentException
- if the child was not found.
-
getBoolean
public boolean getBoolean(int index) Finds the child with the specified index and returns it as a boolean.- Throws:
IllegalArgumentException
- if the child was not found.
-
getByte
public byte getByte(int index) Finds the child with the specified index and returns it as a byte.- Throws:
IllegalArgumentException
- if the child was not found.
-
getShort
public short getShort(int index) Finds the child with the specified index and returns it as a short.- Throws:
IllegalArgumentException
- if the child was not found.
-
getChar
public char getChar(int index) Finds the child with the specified index and returns it as a char.- Throws:
IllegalArgumentException
- if the child was not found.
-
type
-
setType
-
isArray
public boolean isArray() -
isObject
public boolean isObject() -
isString
public boolean isString() -
isNumber
public boolean isNumber()Returns true if this is a double or long value. -
isDouble
public boolean isDouble() -
isLong
public boolean isLong() -
isBoolean
public boolean isBoolean() -
isNull
public boolean isNull() -
isValue
public boolean isValue()Returns true if this is not an array or object. -
name
Returns the name for this object value.- Returns:
- May be null.
-
setName
- Parameters:
name
- May be null.
-
parent
Returns the parent for this value.- Returns:
- May be null.
-
child
Returns the first child for this object or array.- Returns:
- May be null.
-
setChild
Sets the name of the specified value and replaces an existing child with the same name, else adds it after the last child. -
setChild
Replaces an existing child with the same name as the specified value, else adds it after the last child. -
addChild
Sets the name of the specified value and adds it after the last child. -
addChild
Adds the specified value after the last child.- Throws:
IllegalStateException
- if this is an object and the specified child's name is null.
-
next
Returns the next sibling of this value.- Returns:
- May be null.
-
setNext
Sets the next sibling of this value. Does not change the parentsize()
.- Parameters:
next
- May be null.
-
prev
Returns the previous sibling of this value.- Returns:
- May be null.
-
setPrev
Sets the next sibling of this value. Does not change the parentsize()
.- Parameters:
prev
- May be null.
-
set
- Parameters:
value
- May be null.
-
set
- Parameters:
stringValue
- May be null if the string representation is the string value of the double (eg, no leading zeros).
-
set
- Parameters:
stringValue
- May be null if the string representation is the string value of the long (eg, no leading zeros).
-
set
public void set(boolean value) -
toJson
-
iterator
Iterates the children of this array or object. -
toString
-
trace
Returns a human readable string representing the path from the root of the JSON object graph to this value. -
prettyPrint
-
prettyPrint
-
prettyPrint
More efficient thanprettyPrint(PrettyPrintSettings)
butJsonValue.PrettyPrintSettings.singleLineColumns
andJsonValue.PrettyPrintSettings.wrapNumericArrays
are not supported.- Throws:
IOException
-
size
instead.