10Duke Enterprise C++ SDK
Toggle main menu visibility
Loading...
Searching...
No Matches
JSONBuilder.h
1
#ifndef TENDUKE_JSON_JSONBUILDER_H
2
#define TENDUKE_JSON_JSONBUILDER_H
3
4
#include <cstdint>
5
#include <string>
6
7
namespace
tenduke
{
namespace
json
{
8
9
class
JSONObjectBuilder
;
10
14
class
JSONArrayBuilder
15
{
16
friend
class
JSONBuilder;
17
friend
class
JSONObjectBuilder;
18
public
:
23
explicit
JSONArrayBuilder
(
bool
pretty);
24
30
JSONArrayBuilder
&
element
(
const
JSONObjectBuilder &
object
);
36
JSONArrayBuilder
&
element
(
const
std::string &
object
);
37
38
private
:
39
bool
first;
40
bool
pretty;
41
42
std::string
json
;
43
};
44
48
class
JSONObjectBuilder
49
{
50
friend
class
JSONBuilder;
51
friend
class
JSONArrayBuilder;
52
public
:
57
explicit
JSONObjectBuilder
(
bool
pretty =
true
);
58
59
public
:
66
JSONObjectBuilder
&
property
(
const
char
*name,
const
JSONArrayBuilder &array);
67
74
JSONObjectBuilder
&
property
(
const
char
*name,
const
JSONObjectBuilder
&
object
);
75
82
JSONObjectBuilder
&
property
(
const
char
*name,
bool
value);
83
91
JSONObjectBuilder
&
property
(
const
char
*name,
const
char
* value,
bool
evenIfValueEmpty =
false
);
92
100
JSONObjectBuilder
&
property
(
const
char
*name,
const
std::string &value,
bool
evenIfValueEmpty =
false
);
101
108
JSONObjectBuilder
&
property
(
const
char
*name,
int
value);
109
116
JSONObjectBuilder
&
property
(
const
char
*name, std::int64_t value);
117
124
JSONObjectBuilder
&
property
(
const
char
*name, std::uint64_t value);
125
132
JSONObjectBuilder
&
property
(
const
std::string &name,
const
JSONArrayBuilder &array);
133
140
JSONObjectBuilder
&
property
(
const
std::string &name,
const
JSONObjectBuilder
&
object
);
141
148
JSONObjectBuilder
&
property
(
const
std::string &name,
bool
value);
149
157
JSONObjectBuilder
&
property
(
const
std::string &name,
const
char
*value,
bool
evenIfValueEmpty =
false
);
158
166
JSONObjectBuilder
&
property
(
const
std::string &name,
const
std::string &value,
bool
evenIfValueEmpty =
false
);
167
174
JSONObjectBuilder
&
property
(
const
std::string &name,
int
value);
175
182
JSONObjectBuilder
&
property
(
const
std::string &name, std::int64_t value);
183
190
JSONObjectBuilder
&
property
(
const
std::string &name, std::uint64_t value);
191
192
private
:
193
void
appendPropertyName(
const
char
*name);
194
JSONObjectBuilder
& resetFirst();
195
196
private
:
197
bool
firstProperty;
198
bool
pretty;
199
std::string
json
;
200
};
201
207
class
JSONBuilder
208
{
209
public
:
214
explicit
JSONBuilder
(
bool
pretty =
true
);
215
216
public
:
222
JSONArrayBuilder
startArray
(
bool
pretty =
true
);
223
229
JSONObjectBuilder
startObject
(
bool
pretty =
true
);
230
236
JSONBuilder
&
array
(
const
JSONArrayBuilder &a);
237
243
JSONBuilder
&
object
(
const
JSONObjectBuilder &o);
244
249
std::string
build
();
250
251
private
:
252
std::string
json
;
253
bool
pretty;
254
};
255
256
}}
257
258
#endif
//TENDUKE_JSON_JSONBUILDER_H
JSONBuilder::JSONBuilder
JSONBuilder(bool pretty=true)
Constructs new instance.
Definition
JSONBuilder.cpp:79
tenduke::json::JSONArrayBuilder::element
JSONArrayBuilder & element(const JSONObjectBuilder &object)
Adds JSON-object to array.
Definition
JSONBuilder.cpp:225
tenduke::json::JSONArrayBuilder::JSONArrayBuilder
JSONArrayBuilder(bool pretty)
Constructs new instance.
Definition
JSONBuilder.cpp:240
tenduke::json::JSONBuilder::startArray
JSONArrayBuilder startArray(bool pretty=true)
Starts building array.
Definition
JSONBuilder.cpp:69
tenduke::json::JSONBuilder::JSONBuilder
JSONBuilder(bool pretty=true)
Constructs new instance.
Definition
JSONBuilder.cpp:79
tenduke::json::JSONBuilder::build
std::string build()
Builds the json.
Definition
JSONBuilder.cpp:48
tenduke::json::JSONBuilder::startObject
JSONObjectBuilder startObject(bool pretty=true)
Starts building object.
Definition
JSONBuilder.cpp:74
tenduke::json::JSONBuilder::array
JSONBuilder & array(const JSONArrayBuilder &a)
Adds array to document.
Definition
JSONBuilder.cpp:61
tenduke::json::JSONBuilder::object
JSONBuilder & object(const JSONObjectBuilder &o)
Adds object to document.
Definition
JSONBuilder.cpp:53
tenduke::json::JSONObjectBuilder
Builds JSON objects.
Definition
JSONBuilder.h:49
tenduke::json::JSONObjectBuilder::property
JSONObjectBuilder & property(const char *name, const JSONArrayBuilder &array)
Adds JSON array property.
Definition
JSONBuilder.cpp:93
tenduke::json::JSONObjectBuilder::JSONObjectBuilder
JSONObjectBuilder(bool pretty=true)
Constructs new instance.
Definition
JSONBuilder.cpp:187
tenduke::json
JSON support.
Definition
JSONArray.h:10
tenduke
Root for classes, functions and globals of 10Duke C++ Client.
Definition
APIRequest.h:4
core
core
src
json
JSONBuilder.h
Generated by
1.17.0