HDK
|
#include <value.h>
Public Types | |
enum | Type { ObjectType, ArrayType, StringType, BoolType, IntType, RealType, NullType } |
Type held by this JSON value. More... | |
Public Member Functions | |
JS_API | JsValue () |
Constructs a null value. More... | |
JS_API | JsValue (const JsObject &value) |
Constructs a value holding the given object. More... | |
JS_API | JsValue (JsObject &&value) |
Constructs a value holding the given object rvalue reference. More... | |
JS_API | JsValue (const JsArray &value) |
Constructs a value holding the given array. More... | |
JS_API | JsValue (JsArray &&value) |
Constructs a value holding the given array rvalue reference. More... | |
JS_API | JsValue (const char *value) |
Constructs a value holding the given char array as a std::string. More... | |
JS_API | JsValue (const std::string &value) |
Constructs a value holding the given std::string. More... | |
JS_API | JsValue (std::string &&value) |
Constructs a value holding the given std::string rvalue reference. More... | |
JS_API | JsValue (bool value) |
Constructs a value holding a bool. More... | |
JS_API | JsValue (int value) |
Constructs a value holding a signed integer. More... | |
JS_API | JsValue (int64_t value) |
Constructs a value holding a 64-bit signed integer. More... | |
JS_API | JsValue (uint64_t value) |
Constructs a value holding a 64-bit unsigned integer. More... | |
JS_API | JsValue (double value) |
Constructs a value holding a double. More... | |
JS_API const JsObject & | GetJsObject () const |
JS_API const JsArray & | GetJsArray () const |
JS_API const std::string & | GetString () const |
JS_API bool | GetBool () const |
JS_API int | GetInt () const |
JS_API int64_t | GetInt64 () const |
JS_API uint64_t | GetUInt64 () const |
JS_API double | GetReal () const |
template<typename T , typename ReturnType = typename std::conditional< std::is_same<T, JsObject>::value || std::is_same<T, JsArray>::value || std::is_same<T, std::string>::value, const T&, T>::type> | |
ReturnType | Get () const |
template<typename T > | |
std::vector< T > | GetArrayOf () const |
JS_API Type | GetType () const |
Returns the type of this value. More... | |
JS_API std::string | GetTypeName () const |
Returns a display name for the type of this value. More... | |
JS_API bool | IsObject () const |
Returns true if this value is holding an object type. More... | |
JS_API bool | IsArray () const |
Returns true if this value is holding an array type. More... | |
JS_API bool | IsString () const |
Returns true if this value is holding a string type. More... | |
JS_API bool | IsBool () const |
Returns true if this value is holding a boolean type. More... | |
JS_API bool | IsInt () const |
Returns true if this value is holding an integer type. More... | |
JS_API bool | IsReal () const |
Returns true if this value is holding a real type. More... | |
JS_API bool | IsUInt64 () const |
Returns true if this value is holding a 64-bit unsigned integer. More... | |
template<typename T > | |
bool | Is () const |
template<typename T > | |
bool | IsArrayOf () const |
JS_API bool | IsNull () const |
Returns true if this value is null, false otherwise. More... | |
JS_API | operator bool () const |
Evaluates to true if this value is not null. More... | |
JS_API bool | operator== (const JsValue &other) const |
JS_API bool | operator!= (const JsValue &other) const |
A discriminated union type for JSON values. A JsValue may contain one of the following types:
enum JsValue::Type |
JS_API JsValue::JsValue | ( | ) |
Constructs a null value.
Constructs a value holding the given object rvalue reference.
Constructs a value holding the given array rvalue reference.
|
explicit |
Constructs a value holding the given char array as a std::string.
|
explicit |
Constructs a value holding the given std::string.
|
explicit |
Constructs a value holding the given std::string rvalue reference.
|
explicit |
Constructs a value holding a bool.
|
explicit |
Constructs a value holding a 64-bit signed integer.
|
explicit |
Constructs a value holding a 64-bit unsigned integer.
|
explicit |
Constructs a value holding a double.
|
inline |
Returns the value corresponding to the C++ type specified in the template parameter if it is holding such a value. Calling this function with C++ type T is equivalent to calling the specific Get function above that returns a value or reference to a type T.
If a value corresponding to the C++ type is not being held, this method raises a coding error. See Get functions above for default value returned in this case.
|
inline |
Returns a vector holding the elements of this value's array that correspond to the C++ type specified as the template parameter. If this value is not holding an array, an empty vector is returned. If any of the array's elements does not correspond to the C++ type, it is replaced with the default value used by the Get functions above. In both cases, a coding error will be raised.
JS_API bool JsValue::GetBool | ( | ) | const |
Returns the bool held by this value. If this value is not holding a bool, this method raises a coding error and false is returned.
Returns the integer held by this value. If this value is not holding an int, this method raises a coding error and zero is returned. If the value is holding a 64-bit integer larger than the platform int may hold, the value is truncated.
JS_API int64_t JsValue::GetInt64 | ( | ) | const |
Returns the 64-bit integer held by this value. If this value is not holding a 64-bit integer, this method raises a coding error and zero is returned.
Returns the array held by this value. If this value is not holding an array, this method raises a coding error and an empty array is returned.
Returns the object held by this value. If this value is not holding an object, this method raises a coding error and an empty object is returned.
JS_API double JsValue::GetReal | ( | ) | const |
Returns the double held by this value. If this value is not holding a double, this method raises a coding error and zero is returned.
JS_API const std::string& JsValue::GetString | ( | ) | const |
Returns the string held by this value. If this value is not holding a string, this method raises a coding error and an empty string is returned.
JS_API std::string JsValue::GetTypeName | ( | ) | const |
Returns a display name for the type of this value.
JS_API uint64_t JsValue::GetUInt64 | ( | ) | const |
Returns the 64-bit unsigned integer held by this value. If this value is not holding a 64-bit unsigned integer, this method raises a coding error and zero is returned.
|
inline |
JS_API bool JsValue::IsArray | ( | ) | const |
Returns true if this value is holding an array type.
|
inline |
JS_API bool JsValue::IsBool | ( | ) | const |
Returns true if this value is holding a boolean type.
JS_API bool JsValue::IsInt | ( | ) | const |
Returns true if this value is holding an integer type.
JS_API bool JsValue::IsNull | ( | ) | const |
Returns true if this value is null, false otherwise.
JS_API bool JsValue::IsObject | ( | ) | const |
Returns true if this value is holding an object type.
JS_API bool JsValue::IsReal | ( | ) | const |
Returns true if this value is holding a real type.
JS_API bool JsValue::IsString | ( | ) | const |
Returns true if this value is holding a string type.
JS_API bool JsValue::IsUInt64 | ( | ) | const |
Returns true if this value is holding a 64-bit unsigned integer.
|
explicit |
Evaluates to true if this value is not null.
JS_API bool JsValue::operator!= | ( | const JsValue & | other | ) | const |
Returns true if values are of different type, or the underlying held values are not equal.
Returns true of both values hold the same type and the underlying held values are equal.