Library: JSON
Package: JSON
Header: Poco/JSON/Query.h
Class that can be used to search for a value in a JSON object or array.
Member Functions: find, findArray, findObject, findValue
Query(
const Dynamic::Var & source
);
Creates the 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.
virtual ~Query();
Destructor
Dynamic::Var find(
const std::string & path
) const;
Searches a value For 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.
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.
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.
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.
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.
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.
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.