68 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; }
69 const JsonValue &
prop(
const char *name)
const {
auto it = _properties.find(name);
if (it != _properties.end())
return it->second;
static JsonValue undef;
return undef; }
73 void remove(
const std::string &name) {
auto it = _properties.find(name);
if (it != _properties.end()) _properties.erase(it); }
74 void remove(
const char *name) {
auto it = _properties.find(name);
if (it != _properties.end()) _properties.erase(it); }
76 size_t size()
const {
return _items.size(); }
78 const JsonValue &
at(
size_t index)
const {
return _items.at(index); }
79 void erase(
size_t offset,
size_t length) { _items.erase(_items.begin() + offset, _items.begin() + offset +
length); }
81 void clear() { _items.clear(); _properties.clear(); }
91 std::map<std::string, JsonValue> &
properties() {
return _properties; }
92 const std::map<std::string, JsonValue> &
properties()
const {
return _properties; }
94 std::vector<JsonValue> &
items() {
return _items; }
95 const std::vector<JsonValue> &
items()
const {
return _items; }
136 std::vector<JsonValue> _items;
137 std::map<std::string, JsonValue> _properties;
139 double _number = 0.0;
140 bool _boolean =
false;
static JsonValue array()
Definition: json_value.h:53
const JsonValue & prop(const std::string &name) const
Definition: json_value.h:68
JsonValue & prop(const std::string &name)
Definition: json_value.h:70
const JsonValue & operator[](size_t index) const
Definition: json_value.h:132
static JsonValue number(int value)
Definition: json_value.h:56
static JsonValue object()
Definition: json_value.h:52
static JsonValue number(double value)
Definition: json_value.h:54
bool is_array() const
Definition: json_value.h:87
void clear()
Definition: json_value.h:81
size_t size() const
Definition: json_value.h:76
const JsonValue & operator[](const char *name) const
Definition: json_value.h:129
const JsonValue & operator[](const std::string &name) const
Definition: json_value.h:128
void set_number(double v)
Definition: json_value.h:116
void set_object()
Definition: json_value.h:112
unsigned int to_uint() const
Definition: json_value.h:104
unsigned char to_uchar() const
Definition: json_value.h:108
int to_int() const
Definition: json_value.h:103
bool is_number() const
Definition: json_value.h:88
Definition: json_value.h:47
static JsonValue undefined()
Definition: json_value.h:50
JsonValue & prop(const char *name)
Definition: json_value.h:71
float to_float() const
Definition: json_value.h:102
double to_number() const
Definition: json_value.h:97
void set_number(unsigned short v)
Definition: json_value.h:121
static JsonValue number(short value)
Definition: json_value.h:58
void set_number(char v)
Definition: json_value.h:122
void set_number(float v)
Definition: json_value.h:117
unsigned short to_ushort() const
Definition: json_value.h:106
std::vector< JsonValue > & items()
Definition: json_value.h:94
void set_number(unsigned int v)
Definition: json_value.h:119
static JsonValue null()
Definition: json_value.h:51
void set_number(unsigned char v)
Definition: json_value.h:123
void set_string(const std::string &v)
Definition: json_value.h:114
static JsonValue number(unsigned char value)
Definition: json_value.h:61
bool is_undefined() const
Definition: json_value.h:84
static JsonValue string(const std::string &value)
Definition: json_value.h:63
JsonValue & operator[](const std::string &name)
Definition: json_value.h:126
bool is_object() const
Definition: json_value.h:86
bool is_boolean() const
Definition: json_value.h:89
bool is_null() const
Definition: json_value.h:85
void set_array()
Definition: json_value.h:113
JsonType
Definition: json_value.h:36
void set_number(int v)
Definition: json_value.h:118
void set_string(const char *v)
Definition: json_value.h:115
short to_short() const
Definition: json_value.h:105
static JsonValue boolean(bool value)
Definition: json_value.h:62
const std::string & to_string() const
Definition: json_value.h:99
static JsonValue number(char value)
Definition: json_value.h:60
double to_double() const
Definition: json_value.h:101
const JsonValue & prop(const char *name) const
Definition: json_value.h:69
JsonValue & at(size_t index)
Definition: json_value.h:77
const std::map< std::string, JsonValue > & properties() const
Definition: json_value.h:92
std::string to_json() const
static JsonValue parse(const std::string &json)
void set_undefined()
Definition: json_value.h:110
void erase(size_t offset, size_t length)
Definition: json_value.h:79
bool to_boolean() const
Definition: json_value.h:98
void set_null()
Definition: json_value.h:111
JsonType type() const
Definition: json_value.h:83
static JsonValue number(unsigned int value)
Definition: json_value.h:57
static JsonValue number(unsigned short value)
Definition: json_value.h:59
const std::vector< JsonValue > & items() const
Definition: json_value.h:95
char to_char() const
Definition: json_value.h:107
void set_boolean(bool v)
Definition: json_value.h:124
static JsonValue number(float value)
Definition: json_value.h:55
const JsonValue & at(size_t index) const
Definition: json_value.h:78
Definition: Application/application.h:35
std::map< std::string, JsonValue > & properties()
Definition: json_value.h:91
JsonValue & operator[](const char *name)
Definition: json_value.h:127
JsonValue & operator[](size_t index)
Definition: json_value.h:131
void set_number(short v)
Definition: json_value.h:120