JSON value class. More...

#include <Urho3D/Resource/JSONValue.h>

Collaboration diagram for Urho3D::JSONValue:
[legend]

Public Member Functions

 JSONValue ()
 Construct null value.
 
 JSONValue (bool value)
 Construct with a boolean.
 
 JSONValue (int value)
 Construct with a integer.
 
 JSONValue (unsigned value)
 Construct with a unsigned integer.
 
 JSONValue (float value)
 Construct with a float.
 
 JSONValue (double value)
 Construct with a double.
 
 JSONValue (const String &value)
 Construct with a string.
 
 JSONValue (const char *value)
 Construct with a C string.
 
 JSONValue (const JSONArray &value)
 Construct with a JSON array.
 
 JSONValue (const JSONObject &value)
 Construct with a JSON object.
 
 JSONValue (const JSONValue &value)
 Copy-construct from another JSON value.
 
 ~JSONValue ()
 Destruct.
 
JSONValueoperator= (bool rhs)
 Assign from a boolean.
 
JSONValueoperator= (int rhs)
 Assign from an integer.
 
JSONValueoperator= (unsigned rhs)
 Assign from an unsigned integer.
 
JSONValueoperator= (float rhs)
 Assign from a float.
 
JSONValueoperator= (double rhs)
 Assign from a double.
 
JSONValueoperator= (const String &rhs)
 Assign from a string.
 
JSONValueoperator= (const char *rhs)
 Assign from a C string.
 
JSONValueoperator= (const JSONArray &rhs)
 Assign from a JSON array.
 
JSONValueoperator= (const JSONObject &rhs)
 Assign from a JSON object.
 
JSONValueoperator= (const JSONValue &rhs)
 Assign from another JSON value.
 
JSONValueType GetValueType () const
 
JSONNumberType GetNumberType () const
 
String GetValueTypeName () const
 
String GetNumberTypeName () const
 
bool IsNull () const
 
bool IsBool () const
 
bool IsNumber () const
 
bool IsString () const
 
bool IsArray () const
 
bool IsObject () const
 
bool GetBool (bool defaultValue=false) const
 Return boolean value.
 
int GetInt (int defaultValue=0) const
 Return integer value.
 
unsigned GetUInt (unsigned defaultValue=0) const
 Return unsigned integer value.
 
float GetFloat (float defaultValue=0.0f) const
 Return float value.
 
double GetDouble (double defaultValue=0.0) const
 Return double value.
 
const StringGetString (const String &defaultValue=String::EMPTY) const
 Return string value. The 'defaultValue' may potentially be returned as is, so it is the responsibility of the caller to ensure the 'defaultValue' remains valid while the return value is being referenced.
 
const char * GetCString (const char *defaultValue="") const
 Return C string value. Default to empty string literal.
 
const JSONArrayGetArray () const
 Return JSON array value.
 
const JSONObjectGetObject () const
 Return JSON object value.
 
JSONValueoperator[] (unsigned index)
 Return JSON value at index.
 
const JSONValueoperator[] (unsigned index) const
 Return JSON value at index.
 
void Push (const JSONValue &value)
 Add JSON value at end.
 
void Pop ()
 Remove the last JSON value.
 
void Insert (unsigned pos, const JSONValue &value)
 Insert an JSON value at position.
 
void Erase (unsigned pos, unsigned length=1)
 Erase a range of JSON values.
 
void Resize (unsigned newSize)
 Resize array.
 
unsigned Size () const
 
JSONValueoperator[] (const String &key)
 Return JSON value with key.
 
const JSONValueoperator[] (const String &key) const
 Return JSON value with key.
 
void Set (const String &key, const JSONValue &value)
 Set JSON value with key.
 
const JSONValueGet (const String &key) const
 Return JSON value with key.
 
bool Erase (const String &key)
 Erase a pair by key.
 
bool Contains (const String &key) const
 Return whether contains a pair with key.
 
JSONObjectIterator Begin ()
 Return iterator to the beginning.
 
ConstJSONObjectIterator Begin () const
 Return iterator to the beginning.
 
JSONObjectIterator End ()
 Return iterator to the end.
 
ConstJSONObjectIterator End () const
 Return iterator to the beginning.
 
void Clear ()
 Clear array or object.
 
void SetType (JSONValueType valueType, JSONNumberType numberType=JSONNT_NAN)
 Set value type and number type, internal function.
 
void SetVariant (const Variant &variant, Context *context=nullptr)
 Set variant, context must provide for resource ref.
 
Variant GetVariant () const
 Return a variant.
 
void SetVariantValue (const Variant &variant, Context *context=nullptr)
 Set variant value, context must provide for resource ref.
 
Variant GetVariantValue (VariantType type) const
 Return a variant with type.
 
void SetVariantMap (const VariantMap &variantMap, Context *context=nullptr)
 Set variant map, context must provide for resource ref.
 
VariantMap GetVariantMap () const
 Return a variant map. More...
 
void SetVariantVector (const VariantVector &variantVector, Context *context=nullptr)
 Set variant vector, context must provide for resource ref.
 
VariantVector GetVariantVector () const
 Return a variant vector.
 

Static Public Member Functions

static String GetValueTypeName (JSONValueType type)
 Return name corresponding to a value type.
 
static String GetNumberTypeName (JSONNumberType type)
 Return name corresponding to a number type.
 
static JSONValueType GetValueTypeFromName (const String &typeName)
 Return a value type from name; null if unrecognized.
 
static JSONValueType GetValueTypeFromName (const char *typeName)
 Return a value type from name; null if unrecognized.
 
static JSONNumberType GetNumberTypeFromName (const String &typeName)
 Return a number type from name; NaN if unrecognized.
 
static JSONNumberType GetNumberTypeFromName (const char *typeName)
 Return a value type from name; NaN if unrecognized.
 

Static Public Attributes

static const JSONValue EMPTY
 Empty JSON value.
 
static const JSONArray emptyArray { }
 Empty JSON array.
 
static const JSONObject emptyObject
 Empty JSON object.
 

Private Attributes

unsigned type_
 type.
 
union {
   bool   boolValue_
 
   double   numberValue_
 
   String *   stringValue_
 
   JSONArray *   arrayValue_
 
   JSONObject *   objectValue_
 
}; 
 

Detailed Description

JSON value class.

Member Function Documentation

◆ GetNumberType()

JSONNumberType Urho3D::JSONValue::GetNumberType ( ) const

Return number type.

Here is the caller graph for this function:

◆ GetNumberTypeName()

String Urho3D::JSONValue::GetNumberTypeName ( ) const

Return number type's name.

Here is the call graph for this function:

◆ GetValueType()

JSONValueType Urho3D::JSONValue::GetValueType ( ) const

Return value type.

Here is the caller graph for this function:

◆ GetValueTypeName()

String Urho3D::JSONValue::GetValueTypeName ( ) const

Return value type's name.

Here is the call graph for this function:

◆ GetVariantMap()

VariantMap Urho3D::JSONValue::GetVariantMap ( ) const

Return a variant map.

Todo:
Ideally this should allow any strings, but for now the convention is that the keys need to be hexadecimal StringHashes
Here is the call graph for this function:

◆ IsArray()

bool Urho3D::JSONValue::IsArray ( ) const
inline

Check is array.

Here is the caller graph for this function:

◆ IsBool()

bool Urho3D::JSONValue::IsBool ( ) const
inline

Check is boolean.

◆ IsNull()

bool Urho3D::JSONValue::IsNull ( ) const
inline

Check is null.

Here is the caller graph for this function:

◆ IsNumber()

bool Urho3D::JSONValue::IsNumber ( ) const
inline

Check is number.

◆ IsObject()

bool Urho3D::JSONValue::IsObject ( ) const
inline

Check is object.

Here is the caller graph for this function:

◆ IsString()

bool Urho3D::JSONValue::IsString ( ) const
inline

Check is string.

Here is the caller graph for this function:

◆ Size()

unsigned Urho3D::JSONValue::Size ( ) const

Return size of array or number of keys in object.

Here is the call graph for this function:
Here is the caller graph for this function:

Member Data Documentation

◆ arrayValue_

JSONArray* Urho3D::JSONValue::arrayValue_

Array value.

◆ boolValue_

bool Urho3D::JSONValue::boolValue_

Boolean value.

◆ numberValue_

double Urho3D::JSONValue::numberValue_

Number value.

◆ objectValue_

JSONObject* Urho3D::JSONValue::objectValue_

Object value.

◆ stringValue_

String* Urho3D::JSONValue::stringValue_

String value.


The documentation for this class was generated from the following files:
  • Source/Urho3D/Resource/JSONValue.h
  • Source/Urho3D/Resource/JSONValue.cpp