78 const JsonValue &
prop(
const std::string &name)
const {
auto it = _properties.find(name);
if (it != _properties.end())
return it->second;
static JsonValue undef;
return undef; }
79 const JsonValue &
prop(
const char *name)
const {
auto it = _properties.find(name);
if (it != _properties.end())
return it->second;
static JsonValue undef;
return undef; }
83 void remove(
const std::string &name) {
auto it = _properties.find(name);
if (it != _properties.end()) _properties.erase(it); }
84 void remove(
const char *name) {
auto it = _properties.find(name);
if (it != _properties.end()) _properties.erase(it); }
86 size_t size()
const {
return _items.size(); }
88 const JsonValue &
at(
size_t index)
const {
return _items.at(index); }
89 void erase(
size_t offset,
size_t length) { _items.erase(_items.begin() + offset, _items.begin() + offset +
length); }
91 void clear() { _items.clear(); _properties.clear(); }
101 std::map<std::string, JsonValue> &
properties() {
return _properties; }
102 const std::map<std::string, JsonValue> &
properties()
const {
return _properties; }
104 std::vector<JsonValue> &
items() {
return _items; }
105 const std::vector<JsonValue> &
items()
const {
return _items; }
146 std::vector<JsonValue> _items;
147 std::map<std::string, JsonValue> _properties;
149 double _number = 0.0;
150 bool _boolean =
false;
unsigned short to_ushort() const
Definition: json_value.h:116
const std::map< std::string, JsonValue > & properties() const
Definition: json_value.h:102
void set_null()
Definition: json_value.h:121
static JsonValue number(float value)
Definition: json_value.h:65
static JsonValue boolean(bool value)
Definition: json_value.h:72
JsonValue & operator[](const char *name)
Definition: json_value.h:137
JsonValue & prop(const std::string &name)
Definition: json_value.h:80
static JsonValue number(unsigned short value)
Definition: json_value.h:69
char to_char() const
Definition: json_value.h:117
void set_string(const std::string &v)
Definition: json_value.h:124
bool is_array() const
Definition: json_value.h:97
void set_boolean(bool v)
Definition: json_value.h:134
void set_number(unsigned int v)
Definition: json_value.h:129
JsonException(const std::string &message)
Definition: json_value.h:43
void set_number(char v)
Definition: json_value.h:132
JsonValue & operator[](const std::string &name)
Definition: json_value.h:136
JsonValue & prop(const char *name)
Definition: json_value.h:81
const JsonValue & prop(const std::string &name) const
Definition: json_value.h:78
unsigned int to_uint() const
Definition: json_value.h:114
short to_short() const
Definition: json_value.h:115
const std::vector< JsonValue > & items() const
Definition: json_value.h:105
std::vector< JsonValue > & items()
Definition: json_value.h:104
void set_number(unsigned char v)
Definition: json_value.h:133
Exception class thrown for JSON exceptions.
Definition: json_value.h:40
void erase(size_t offset, size_t length)
Definition: json_value.h:89
JsonType type() const
Definition: json_value.h:93
void set_number(unsigned short v)
Definition: json_value.h:131
Top-level exception class.
Definition: exception.h:41
void clear()
Definition: json_value.h:91
static JsonValue number(double value)
Definition: json_value.h:64
void set_number(short v)
Definition: json_value.h:130
void set_string(const char *v)
Definition: json_value.h:125
void set_number(int v)
Definition: json_value.h:128
const std::string & to_string() const
Definition: json_value.h:109
const JsonValue & operator[](const char *name) const
Definition: json_value.h:139
const JsonValue & operator[](size_t index) const
Definition: json_value.h:142
bool is_undefined() const
Definition: json_value.h:94
int to_int() const
Definition: json_value.h:113
std::string to_json() const
static JsonValue number(unsigned int value)
Definition: json_value.h:67
void set_undefined()
Definition: json_value.h:120
Definition: json_value.h:57
static JsonValue number(short value)
Definition: json_value.h:68
double to_number() const
Definition: json_value.h:107
void set_array()
Definition: json_value.h:123
bool is_null() const
Definition: json_value.h:95
static JsonValue object()
Definition: json_value.h:62
JsonValue & at(size_t index)
Definition: json_value.h:87
static JsonValue string(const std::string &value)
Definition: json_value.h:73
float to_float() const
Definition: json_value.h:112
bool is_number() const
Definition: json_value.h:98
const JsonValue & prop(const char *name) const
Definition: json_value.h:79
void set_object()
Definition: json_value.h:122
JsonType
Definition: json_value.h:46
const JsonValue & at(size_t index) const
Definition: json_value.h:88
std::map< std::string, JsonValue > & properties()
Definition: json_value.h:101
static JsonValue parse(const std::string &json)
double to_double() const
Definition: json_value.h:111
static JsonValue number(int value)
Definition: json_value.h:66
JsonValue & operator[](size_t index)
Definition: json_value.h:141
void set_number(float v)
Definition: json_value.h:127
size_t size() const
Definition: json_value.h:86
static JsonValue null()
Definition: json_value.h:61
bool to_boolean() const
Definition: json_value.h:108
static JsonValue undefined()
Definition: json_value.h:60
bool is_boolean() const
Definition: json_value.h:99
static JsonValue array()
Definition: json_value.h:63
void set_number(double v)
Definition: json_value.h:126
bool is_object() const
Definition: json_value.h:96
static JsonValue number(unsigned char value)
Definition: json_value.h:71
const JsonValue & operator[](const std::string &name) const
Definition: json_value.h:138
unsigned char to_uchar() const
Definition: json_value.h:118
static JsonValue number(char value)
Definition: json_value.h:70
std::string message
Description of exception.
Definition: exception.h:51