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
Get the current node as a document root
Attach to an existing decoded document
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
Load document from a JSON string
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 83
__construct(int $options = 0)
Create a new instance
at line 97
__get(JsonBrowser|mixed $key)
Dynamically get child nodes or values as object properties
at line 116
__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 128
JsonBrowser
asRoot()
Get the current node as a document root
at line 144
attach(mixed $document)
Attach to an existing decoded document
at line 157
bool
childExists(mixed $key)
Check whether a child element exists
at line 169
deleteValue(bool $deleteEmpty = false)
Delete the current node value
at line 182
deleteValueAt(string $path, bool $deleteEmpty = false)
Delete the value at a given path
at line 195
JsonBrowser
getChild(mixed $key)
Get a child node
at line 214
Iterator
getIterator()
Get an iterator handle
at line 227
string
getJSON(int $options = \JSON_PRETTY_PRINT | \JSON_UNESCAPED_SLASHES | \JSON_UNESCAPED_UNICODE)
Get the JSON source for the current node
at line 239
mixed
getKey()
Get the node index key (i.e. the child name within the parent node)
at line 252
JsonBrowser
getNodeAt(string $path)
Get the node at a given path
at line 271
JsonBrowser|null
getParent()
Get parent node
at line 291
string
getPath()
Get the node path
at line 303
JsonBrowser
getRoot()
Get root node
at line 316
JsonBrowser
getSibling(mixed $key)
Get a sibling node
at line 337
int
getType()
Get the document value type
at line 379
mixed
getValue()
Get the node value
at line 398
mixed
getValueAt(string $path)
Get the value at a given path
at line 422
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 441
bool
isNotType(int $types)
Test whether the document value is not of a given type
at line 455
bool
isType(int $types, bool $all = false)
Test whether the document value is of a given type
at line 470
loadJSON(string $json)
Load document from a JSON string
at line 503
bool
nodeExists()
Check whether the current node exists in the parent document
at line 516
setValue(mixed $value, bool $padSparseArray = false)
Set the node value
at line 530
setValueAt(string $path, mixed $value, bool $padSparseArray = false)
Set the value at a given path
at line 543
bool
siblingExists(mixed $key)
Check whether a sibling exists