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