Library: JSON
Package: JSON
Header: Poco/JSON/Query.h
Description
Class that can be used to search for a value in a JSON object or array.
Member Summary
Member Functions: find, findArray, findObject, findValue
Constructors
Query
Query(
const Dynamic::Var & source
);
Creates a Query.
Source must be JSON Object, Array, Object::Ptr, Array::Ptr or empty Var. Any other type will trigger throwing of InvalidArgumentException.
Creating Query holding Ptr will typically result in faster performance.
Destructor
~Query
virtual ~Query();
Destroys the Query.
Member Functions
find
Dynamic::Var find(
const std::string & path
) const;
Searches a value.
Example: "person.children[0].name" will return the the name of the first child. When the value can't be found an empty value is returned.
findArray
Array::Ptr findArray(
const std::string & path
) const;
Search for an array.
When the array can't be found, a zero Ptr is returned; otherwise, a shared pointer to internally held array is returned. If array (as opposed to a pointer to array) is held internally, a shared pointer to new (heap-allocated) Object is returned; this may be expensive operation.
findArray
Array & findArray(
const std::string & path,
Array & obj
) const;
Search for an array.
If array is found, it is assigned to the Object through the reference passed in. When the array can't be found, the provided Object is emptied and returned.
findObject
Object::Ptr findObject(
const std::string & path
) const;
Search for an object.
When the object can't be found, a zero Ptr is returned; otherwise, a shared pointer to internally held object is returned. If object (as opposed to a pointer to object) is held internally, a shared pointer to new (heap-allocated) Object is returned; this may be expensive operation.
findObject
Object & findObject(
const std::string & path,
Object & obj
) const;
Search for an object.
If object is found, it is assigned to the Object through the reference passed in. When the object can't be found, the provided Object is emptied and returned.
findValue
template < typename T > T findValue(
const std::string & path,
const T & def
) const;
Searches for a value will convert it to the given type. When the value can't be found or has an invalid type the default value will be returned.
findValue
std::string findValue(
const char * path,
const char * def
) const;
Searches for a value will convert it to the given type. When the value can't be found or has an invalid type the default value will be returned.