JsonBrowser
class JsonBrowser implements IteratorAggregate
Helper class for working with JSON-encoded data
Constants
| OPT_NONEXISTENT_EXCEPTIONS |
Throw exceptions instead of using NULL for nonexistent children & siblings |
| OPT_GET_VALUE |
Get node value instead of JsonBrowser object for __get() |
| ERR_DECODING_ERROR |
Error decoding JSON data |
| ERR_UNKNOWN_TYPE |
Encountered an unknown type |
| ERR_UNKNOWN_CHILD |
Unknown child |
| ERR_UNKNOWN_SIBLING |
Unknown sibling |
| ERR_UNKNOWN_SELF |
Unknown self |
| ERR_INVALID_CONTAINER_TYPE |
Invalid container type |
| ERR_UNKNOWN_TARGET |
Unknown target |
| TYPE_NULL |
NULL type |
| TYPE_BOOLEAN |
Boolean type |
| TYPE_STRING |
String type |
| TYPE_NUMBER |
Number type |
| TYPE_INTEGER |
Integer type (subset of TYPE_NUMBER) |
| TYPE_ARRAY |
Array type |
| TYPE_OBJECT |
Object type |
Methods
Create a new instance
Dynamically set child node values as object properties
Check whether a child element exists
Delete the current node value
Delete the value at a given path
Get a child node
Get an iterator handle
Get the JSON source for the current node
Get the node index key (i.e. the child name within the parent node)
Get the node at a given path
Get parent node
Get the node path
Get root node
Get a sibling node
Get the document value type
Get the node value
Get the value at a given path
Test whether the document value is not of a given type
Test whether the document value is of a given type
Check whether the current node exists in the parent document
Set the node value
Set the value at a given path
Check whether a sibling exists
Details
at line 85
__construct(string $json, int $options = 0)
Create a new instance
at line 99
__get(JsonBrowser|mixed $key)
Dynamically get child nodes or values as object properties
at line 118
__set(mixed $key, mixed $value)
Dynamically set child node values as object properties
Will set the value on a child node, but will not pad sparse arrays.
at line 131
bool
childExists(mixed $key)
Check whether a child element exists
at line 143
deleteValue(bool $deleteEmpty = false)
Delete the current node value
at line 156
deleteValueAt(string $path, bool $deleteEmpty = false)
Delete the value at a given path
at line 169
JsonBrowser
getChild(mixed $key)
Get a child node
at line 188
Iterator
getIterator()
Get an iterator handle
at line 201
string
getJSON(int $options = \JSON_PRETTY_PRINT | \JSON_UNESCAPED_SLASHES | \JSON_UNESCAPED_UNICODE)
Get the JSON source for the current node
at line 213
mixed
getKey()
Get the node index key (i.e. the child name within the parent node)
at line 226
JsonBrowser
getNodeAt(string $path)
Get the node at a given path
at line 245
JsonBrowser|null
getParent()
Get parent node
at line 265
string
getPath()
Get the node path
at line 277
JsonBrowser
getRoot()
Get root node
at line 290
JsonBrowser
getSibling(mixed $key)
Get a sibling node
at line 311
int
getType()
Get the document value type
at line 353
mixed
getValue()
Get the node value
at line 372
mixed
getValueAt(string $path)
Get the value at a given path
at line 396
bool
isEqualTo(JsonBrowser|mixed $value)
Test whether the document value is equal to a given value
Comparisons considered equal: - normal strictly-typed equality (===); - loosely-typed equality (==) where both values are numeric and are not strings; - any object having the same number and value for all properties, as per the above tests.
at line 415
bool
isNotType(int $types)
Test whether the document value is not of a given type
at line 429
bool
isType(int $types, bool $all = false)
Test whether the document value is of a given type
at line 444
bool
nodeExists()
Check whether the current node exists in the parent document
at line 457
setValue(mixed $value, bool $padSparseArray = false)
Set the node value
at line 471
setValueAt(string $path, mixed $value, bool $padSparseArray = false)
Set the value at a given path
at line 484
bool
siblingExists(mixed $key)
Check whether a sibling exists