@@ -36,12 +36,14 @@ enum class JsonType {
3636 Unknown
3737};
3838
39+ using JsonNode = jsoncons::ojson;
40+
3941class JsonValue ;
4042
4143class JsonField {
4244 public:
4345 JsonField () = default ;
44- JsonField (std::string_view key, const jsoncons::json *value)
46+ JsonField (std::string_view key, const JsonNode *value)
4547 : m_key(key),
4648 m_value (value) { }
4749
@@ -57,14 +59,14 @@ class JsonField {
5759
5860 private:
5961 std::string_view m_key;
60- const jsoncons::json *m_value{nullptr };
62+ const JsonNode *m_value{nullptr };
6163};
6264
6365class JsonArray {
6466 public:
6567 class iterator {
6668 public:
67- explicit iterator (jsoncons::json ::const_array_iterator iterator)
69+ explicit iterator (JsonNode ::const_array_iterator iterator)
6870 : m_iterator(iterator) { }
6971
7072 JsonValue operator *() const ;
@@ -79,11 +81,11 @@ class JsonArray {
7981 }
8082
8183 private:
82- jsoncons::json ::const_array_iterator m_iterator;
84+ JsonNode ::const_array_iterator m_iterator;
8385 };
8486
8587 JsonArray () = default ;
86- explicit JsonArray (const jsoncons::json *value) : m_value(value) { }
88+ explicit JsonArray (const JsonNode *value) : m_value(value) { }
8789
8890 bool valid () const {
8991 return m_value != nullptr && m_value->is_array ();
@@ -98,14 +100,14 @@ class JsonArray {
98100 }
99101
100102 private:
101- const jsoncons::json *m_value{nullptr };
103+ const JsonNode *m_value{nullptr };
102104};
103105
104106class JsonObject {
105107 public:
106108 class iterator {
107109 public:
108- explicit iterator (jsoncons::json ::const_object_iterator iterator)
110+ explicit iterator (JsonNode ::const_object_iterator iterator)
109111 : m_iterator(iterator) { }
110112
111113 JsonField operator *() const {
@@ -124,11 +126,11 @@ class JsonObject {
124126 }
125127
126128 private:
127- jsoncons::json ::const_object_iterator m_iterator;
129+ JsonNode ::const_object_iterator m_iterator;
128130 };
129131
130132 JsonObject () = default ;
131- explicit JsonObject (const jsoncons::json *value) : m_value(value) { }
133+ explicit JsonObject (const JsonNode *value) : m_value(value) { }
132134
133135 bool valid () const {
134136 return m_value != nullptr && m_value->is_object ();
@@ -143,13 +145,13 @@ class JsonObject {
143145 }
144146
145147 private:
146- const jsoncons::json *m_value{nullptr };
148+ const JsonNode *m_value{nullptr };
147149};
148150
149151class JsonValue {
150152 public:
151153 JsonValue () = default ;
152- explicit JsonValue (const jsoncons::json *value) : m_value(value) { }
154+ explicit JsonValue (const JsonNode *value) : m_value(value) { }
153155
154156 bool valid () const {
155157 return m_value != nullptr ;
@@ -185,12 +187,12 @@ class JsonValue {
185187 return JsonType::Number;
186188 }
187189
188- const jsoncons::json *raw () const {
190+ const JsonNode *raw () const {
189191 return m_value;
190192 }
191193
192194 private:
193- const jsoncons::json *m_value{nullptr };
195+ const JsonNode *m_value{nullptr };
194196};
195197
196198inline JsonValue JsonField::value () const {
@@ -213,7 +215,7 @@ class JsonDocument {
213215
214216 bool parse (const std::string &input, std::string *error = nullptr ) {
215217 try {
216- m_root = jsoncons::json ::parse (input);
218+ m_root = JsonNode ::parse (input);
217219 return true ;
218220 } catch (const std::exception &exception) {
219221 if (error != nullptr ) {
@@ -224,7 +226,7 @@ class JsonDocument {
224226 }
225227
226228 private:
227- jsoncons::json m_root;
229+ JsonNode m_root;
228230};
229231
230232inline bool get (JsonArray value, JsonArray *target,
@@ -237,7 +239,7 @@ inline bool get(JsonArray value, JsonArray *target,
237239 return true ;
238240}
239241
240- inline bool get (JsonField value, JsonField *target,
242+ inline bool get (const JsonField & value, JsonField *target,
241243 std::string *error = nullptr ) {
242244 (void ) error;
243245 if (!value.valid ()) {
0 commit comments