AWS SDK for C++  1.8.184
AWS SDK for C++
JsonSerializer.h
Go to the documentation of this file.
1 
6 #pragma once
7 
9 
10 #include <aws/core/utils/Array.h>
15 
16 #include <utility>
17 
18 namespace Aws
19 {
20  namespace Utils
21  {
22  namespace Json
23  {
24  class JsonView;
30  {
31  public:
36 
40  JsonValue(const Aws::String& value);
41 
46 
51  JsonValue(const JsonValue& value);
52 
57  JsonValue(JsonValue&& value);
58 
60 
64  JsonValue& operator=(const JsonValue& other);
65 
74 
75  bool operator==(const JsonValue& other) const;
76  bool operator!=(const JsonValue& other) const;
77 
81  JsonValue& WithString(const Aws::String& key, const Aws::String& value);
82  JsonValue& WithString(const char* key, const Aws::String& value);
83 
87  JsonValue& AsString(const Aws::String& value);
88 
92  JsonValue& WithBool(const Aws::String& key, bool value);
93  JsonValue& WithBool(const char* key, bool value);
94 
98  JsonValue& AsBool(bool value);
99 
103  JsonValue& WithInteger(const Aws::String& key, int value);
104  JsonValue& WithInteger(const char* key, int value);
105 
109  JsonValue& AsInteger(int value);
110 
114  JsonValue& WithInt64(const Aws::String& key, long long value);
115  JsonValue& WithInt64(const char* key, long long value);
116 
120  JsonValue& AsInt64(long long value);
121 
125  JsonValue& WithDouble(const Aws::String& key, double value);
126  JsonValue& WithDouble(const char* key, double value);
127 
131  JsonValue& AsDouble(double value);
132 
136  JsonValue& WithArray(const Aws::String& key, const Array<Aws::String>& array);
137  JsonValue& WithArray(const char* key, const Array<Aws::String>& array);
138 
143  JsonValue& WithArray(const Aws::String& key, const Array<JsonValue>& array);
144 
150 
155 
160 
165  JsonValue& WithObject(const Aws::String& key, const JsonValue& value);
166  JsonValue& WithObject(const char* key, const JsonValue& value);
167 
171  JsonValue& WithObject(const Aws::String& key, JsonValue&& value);
172  JsonValue& WithObject(const char* key, JsonValue&& value);
173 
177  JsonValue& AsObject(const JsonValue& value);
178 
183 
188  inline bool WasParseSuccessful() const
189  {
190  return m_wasParseSuccessful;
191  }
192 
196  inline const Aws::String& GetErrorMessage() const
197  {
198  return m_errorMessage;
199  }
200 
204  JsonView View() const;
205 
206  private:
207  void Destroy();
208  JsonValue(cJSON* value);
209  cJSON* m_value;
210  bool m_wasParseSuccessful;
211  Aws::String m_errorMessage;
212  friend class JsonView;
213  };
214 
222  {
223  public:
224  /* constructors */
226  JsonView(const JsonValue& v);
228 
232  Aws::String GetString(const Aws::String& key) const;
233 
239 
243  bool GetBool(const Aws::String& key) const;
244 
248  bool AsBool() const;
249 
254  int GetInteger(const Aws::String& key) const;
255 
259  int AsInteger() const;
260 
265  int64_t GetInt64(const Aws::String& key) const;
266 
270  int64_t AsInt64() const;
271 
275  double GetDouble(const Aws::String& key) const;
276 
280  double AsDouble() const;
281 
286 
291 
295  JsonView GetObject(const Aws::String& key) const;
296 
301 
307 
312  bool ValueExists(const Aws::String& key) const;
313 
317  bool KeyExists(const Aws::String& key) const;
318 
322  bool IsObject() const;
323 
327  bool IsBool() const;
328 
332  bool IsString() const;
333 
338  bool IsIntegerType() const;
339 
343  bool IsFloatingPointType() const;
344 
348  bool IsListType() const;
349 
353  bool IsNull() const;
354 
359  Aws::String WriteCompact(bool treatAsObject = true) const;
360 
365  Aws::String WriteReadable(bool treatAsObject = true) const;
366 
371 
372  private:
373  JsonView(cJSON* val);
374  JsonView& operator=(cJSON* val);
375  cJSON* m_value;
376  };
377 
378  } // namespace Json
379  } // namespace Utils
380 } // namespace Aws
381 
Aws::Utils::Json::JsonValue::WithArray
JsonValue & WithArray(const Aws::String &key, Array< JsonValue > &&array)
Aws::Utils::Json::JsonValue::WithString
JsonValue & WithString(const Aws::String &key, const Aws::String &value)
Aws::Utils::Json::JsonView::GetObject
JsonView GetObject(const Aws::String &key) const
Aws::Utils::Json::JsonValue::operator!=
bool operator!=(const JsonValue &other) const
Aws::Utils::Json::JsonValue::operator=
JsonValue & operator=(const JsonValue &other)
Aws::Utils::Json::JsonView::AsBool
bool AsBool() const
Aws::Utils::Json::JsonView::IsBool
bool IsBool() const
Aws::Utils::Json::JsonView::IsListType
bool IsListType() const
Aws::Utils::Json::JsonView::KeyExists
bool KeyExists(const Aws::String &key) const
Aws::Utils::Json::JsonValue::AsBool
JsonValue & AsBool(bool value)
cJSON
Definition: cJSON.h:54
AWS_CORE_API
#define AWS_CORE_API
Definition: Core_EXPORTS.h:25
Aws::Utils::Json::JsonValue::WithDouble
JsonValue & WithDouble(const Aws::String &key, double value)
Aws::Utils::Json::JsonValue::WithInteger
JsonValue & WithInteger(const Aws::String &key, int value)
Aws::Utils::Json::JsonValue::AsArray
JsonValue & AsArray(Array< JsonValue > &&array)
Aws::Utils::Json::JsonView::GetDouble
double GetDouble(const Aws::String &key) const
Aws::Utils::Json::JsonValue::WithBool
JsonValue & WithBool(const Aws::String &key, bool value)
Aws::Utils::Json::JsonView::IsString
bool IsString() const
Aws::Utils::Json::JsonView::IsIntegerType
bool IsIntegerType() const
Aws::Utils::Json::JsonValue::JsonValue
JsonValue(Aws::IStream &istream)
Aws::Utils::Json::JsonView::AsArray
Array< JsonView > AsArray() const
Aws::Utils::Json::JsonView::ValueExists
bool ValueExists(const Aws::String &key) const
Aws::Utils::Json::JsonValue::View
JsonView View() const
Aws::Utils::Json::JsonValue::AsDouble
JsonValue & AsDouble(double value)
cJSON.h
Aws::Utils::Json::JsonValue::~JsonValue
~JsonValue()
Aws::Utils::Json::JsonValue::WithBool
JsonValue & WithBool(const char *key, bool value)
Aws::Utils::Json::JsonValue::WithArray
JsonValue & WithArray(const char *key, const Array< Aws::String > &array)
Aws::IStream
std::basic_istream< char, std::char_traits< char > > IStream
Definition: AWSStreamFwd.h:20
AWSStreamFwd.h
Aws::Utils::Json::JsonView::IsFloatingPointType
bool IsFloatingPointType() const
Aws::Utils::Json::JsonView::AsDouble
double AsDouble() const
Aws::Utils::Json::JsonValue::WithObject
JsonValue & WithObject(const char *key, const JsonValue &value)
Aws::Utils::Json::JsonView::GetString
Aws::String GetString(const Aws::String &key) const
Aws::Utils::Json::JsonValue::WithArray
JsonValue & WithArray(const Aws::String &key, const Array< JsonValue > &array)
Aws::Utils::Json::JsonValue::WithArray
JsonValue & WithArray(const Aws::String &key, const Array< Aws::String > &array)
Aws::Utils::Json::JsonValue::operator=
JsonValue & operator=(JsonValue &&other)
Aws::Utils::Json::JsonValue::GetErrorMessage
const Aws::String & GetErrorMessage() const
Definition: JsonSerializer.h:196
Aws::Utils::Json::JsonView::GetBool
bool GetBool(const Aws::String &key) const
Aws::Utils::Json::JsonValue::WithString
JsonValue & WithString(const char *key, const Aws::String &value)
Aws::Utils::Json::JsonValue::AsInt64
JsonValue & AsInt64(long long value)
Aws::Utils::Json::JsonValue::JsonValue
JsonValue(const JsonValue &value)
Aws::Utils::Json::JsonView::IsObject
bool IsObject() const
Aws::Utils::Json::JsonView
Definition: JsonSerializer.h:222
Aws::Utils::Array< Aws::String >
AWSString.h
Aws::Utils::Json::JsonValue::WasParseSuccessful
bool WasParseSuccessful() const
Definition: JsonSerializer.h:188
Aws::Utils::Json::JsonValue
Definition: JsonSerializer.h:30
Aws::Utils::Json::JsonValue::WithDouble
JsonValue & WithDouble(const char *key, double value)
Aws::Utils::Json::JsonView::GetInt64
int64_t GetInt64(const Aws::String &key) const
Aws::Utils::Json::JsonValue::WithInt64
JsonValue & WithInt64(const Aws::String &key, long long value)
Aws::Utils::Json::JsonView::AsObject
JsonView AsObject() const
Aws::Utils::Json::JsonView::AsInteger
int AsInteger() const
Aws::Utils::Json::JsonView::IsNull
bool IsNull() const
Aws::Utils::Json::JsonValue::JsonValue
JsonValue(JsonValue &&value)
Aws::Utils::Json::JsonView::JsonView
JsonView()
Aws::Utils::Json::JsonValue::operator==
bool operator==(const JsonValue &other) const
Aws::Utils::Json::JsonView::GetInteger
int GetInteger(const Aws::String &key) const
Aws::Utils::Json::JsonView::WriteCompact
Aws::String WriteCompact(bool treatAsObject=true) const
Aws::Utils::Json::JsonView::WriteReadable
Aws::String WriteReadable(bool treatAsObject=true) const
Core_EXPORTS.h
Aws::Utils::Json::JsonView::AsString
Aws::String AsString() const
Aws::Utils::Json::JsonValue::WithObject
JsonValue & WithObject(const char *key, JsonValue &&value)
Aws::Utils::Json::JsonValue::WithObject
JsonValue & WithObject(const Aws::String &key, JsonValue &&value)
Aws
Definition: AccessManagementClient.h:15
Array.h
Aws::String
std::basic_string< char, std::char_traits< char >, Aws::Allocator< char > > String
Definition: AWSString.h:97
Aws::Utils::Json::JsonView::GetAllObjects
Aws::Map< Aws::String, JsonView > GetAllObjects() const
Aws::Utils::Json::JsonValue::WithInteger
JsonValue & WithInteger(const char *key, int value)
Aws::Utils::Json::JsonView::AsInt64
int64_t AsInt64() const
Aws::Utils::Json::JsonView::Materialize
JsonValue Materialize() const
Aws::Utils::Json::JsonView::GetArray
Array< JsonView > GetArray(const Aws::String &key) const
Aws::Utils::Json::JsonValue::JsonValue
JsonValue(const Aws::String &value)
Aws::Utils::Json::JsonValue::WithObject
JsonValue & WithObject(const Aws::String &key, const JsonValue &value)
Aws::Utils::Json::JsonValue::AsArray
JsonValue & AsArray(const Array< JsonValue > &array)
AWSMap.h
Aws::Utils::Json::JsonValue::AsString
JsonValue & AsString(const Aws::String &value)
Aws::Utils::Json::JsonView::JsonView
JsonView(const JsonValue &v)
Aws::Utils::Json::JsonValue::AsObject
JsonValue & AsObject(const JsonValue &value)
Aws::Utils::Json::JsonValue::AsObject
JsonValue & AsObject(JsonValue &&value)
Aws::Utils::Json::JsonValue::JsonValue
JsonValue()
Aws::Utils::Json::JsonView::operator=
JsonView & operator=(const JsonValue &v)
Aws::Map
std::map< K, V, std::less< K >, Aws::Allocator< std::pair< const K, V > > > Map
Definition: AWSMap.h:19
Aws::Utils::Json::JsonValue::AsInteger
JsonValue & AsInteger(int value)
Aws::Utils::Json::JsonValue::WithInt64
JsonValue & WithInt64(const char *key, long long value)