AWS SDK for C++  1.9.107
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  class Document;
23  class DocumentView;
24 
25  namespace Json
26  {
27  class JsonView;
33  {
34  public:
39 
43  JsonValue(const Aws::String& value);
44 
49 
54  JsonValue(const JsonValue& value);
55 
60  JsonValue(JsonValue&& value);
61 
66 
68 
72  JsonValue& operator=(const JsonValue& other);
73 
82 
87 
88  bool operator==(const JsonValue& other) const;
89  bool operator!=(const JsonValue& other) const;
90 
94  JsonValue& WithString(const Aws::String& key, const Aws::String& value);
95  JsonValue& WithString(const char* key, const Aws::String& value);
96 
101 
105  JsonValue& WithBool(const Aws::String& key, bool value);
106  JsonValue& WithBool(const char* key, bool value);
107 
111  JsonValue& AsBool(bool value);
112 
116  JsonValue& WithInteger(const Aws::String& key, int value);
117  JsonValue& WithInteger(const char* key, int value);
118 
122  JsonValue& AsInteger(int value);
123 
127  JsonValue& WithInt64(const Aws::String& key, long long value);
128  JsonValue& WithInt64(const char* key, long long value);
129 
133  JsonValue& AsInt64(long long value);
134 
138  JsonValue& WithDouble(const Aws::String& key, double value);
139  JsonValue& WithDouble(const char* key, double value);
140 
144  JsonValue& AsDouble(double value);
145 
149  JsonValue& WithArray(const Aws::String& key, const Array<Aws::String>& array);
150  JsonValue& WithArray(const char* key, const Array<Aws::String>& array);
151 
156  JsonValue& WithArray(const Aws::String& key, const Array<JsonValue>& array);
157 
163 
168 
173 
178  JsonValue& WithObject(const Aws::String& key, const JsonValue& value);
179  JsonValue& WithObject(const char* key, const JsonValue& value);
180 
184  JsonValue& WithObject(const Aws::String& key, JsonValue&& value);
185  JsonValue& WithObject(const char* key, JsonValue&& value);
186 
190  JsonValue& AsObject(const JsonValue& value);
191 
196 
201  inline bool WasParseSuccessful() const
202  {
203  return m_wasParseSuccessful;
204  }
205 
209  inline const Aws::String& GetErrorMessage() const
210  {
211  return m_errorMessage;
212  }
213 
217  JsonView View() const;
218 
219  private:
220  void Destroy();
221  JsonValue(cJSON* value);
222  cJSON* m_value;
223  bool m_wasParseSuccessful;
224  Aws::String m_errorMessage;
225  friend class JsonView;
226  };
227 
235  {
236  public:
237  /* constructors */
239  JsonView(const JsonValue& v);
241 
245  Aws::String GetString(const Aws::String& key) const;
246 
252 
256  bool GetBool(const Aws::String& key) const;
257 
261  bool AsBool() const;
262 
267  int GetInteger(const Aws::String& key) const;
268 
272  int AsInteger() const;
273 
278  int64_t GetInt64(const Aws::String& key) const;
279 
283  int64_t AsInt64() const;
284 
288  double GetDouble(const Aws::String& key) const;
289 
293  double AsDouble() const;
294 
299 
304 
308  JsonView GetObject(const Aws::String& key) const;
309 
314 
320 
325  bool ValueExists(const Aws::String& key) const;
326 
330  bool KeyExists(const Aws::String& key) const;
331 
335  bool IsObject() const;
336 
340  bool IsBool() const;
341 
345  bool IsString() const;
346 
351  bool IsIntegerType() const;
352 
356  bool IsFloatingPointType() const;
357 
361  bool IsListType() const;
362 
366  bool IsNull() const;
367 
372  Aws::String WriteCompact(bool treatAsObject = true) const;
373 
378  Aws::String WriteReadable(bool treatAsObject = true) const;
379 
384 
385  private:
386  JsonView(cJSON* val);
387  JsonView& operator=(cJSON* val);
388  cJSON* m_value;
389  friend class Aws::Utils::Document;
390  };
391 
392  } // namespace Json
393  } // namespace Utils
394 } // namespace Aws
395 
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::Document
Definition: Document.h:36
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:115
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::JsonValue
JsonValue(const Aws::Utils::DocumentView &value)
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:209
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:235
Aws::Utils::Array< Aws::String >
AWSString.h
Aws::Utils::Json::JsonValue::WasParseSuccessful
bool WasParseSuccessful() const
Definition: JsonSerializer.h:201
Aws::Utils::Json::JsonValue
Definition: JsonSerializer.h:33
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::JsonValue::operator=
JsonValue & operator=(const Aws::Utils::DocumentView &value)
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::Utils::DocumentView
Definition: Document.h:226
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)