119 int setString(
const char* val,
size_t len);
128 int b64enc(
const void* source,
S32 slen);
149 int vFmtString(
const char* fmt,va_list argList);
173 int setJV(
struct JVal* val,
bool iterateNext=
false);
225 int set(
const char* fmt, ...);
308#define JEncoder_destructor(o) JEncoder_flush(o)
320#define JEncoder_getErr(o) (o)->err
330#define JEncoder_setDouble JEncoder_setInt
346 JEncoder* o,
const char* fmt,va_list argList);
368BA_API
int JEncoder_vSetJV(
369 JEncoder* o,
const char** fmt,va_list* argList);
397#define JEncoder_getBufPrint(o) (o)->out
413 int retv; va_list argList;
414 va_start(argList, fmt);
432 int retv; va_list argList;
433 va_start(argList, fmt);
434 retv=JEncoder_vSetJV(
this,&fmt,&argList);
461#define JE_MEMBER(o, m) #m, (o)->m
int setJV(struct JVal *val, bool iterateNext=false)
Serialize a JVal node and its child values.
Definition: JEncoder.h:429
BA_API int JEncoder_set(JEncoder *o, const char *fmt,...)
Encode/serialize C structs/data to JSON using formatted output.
BA_API int JEncoder_setNull(JEncoder *o)
Write JSON null.
JEncoder(JErr *err, BufPrint *out)
Initialize an encoder without writing output or resetting err.
Definition: JEncoder.h:400
int fmtString(const char *fmt,...)
Format text inside JSON quotation marks.
Definition: JEncoder.h:412
BA_API int JEncoder_flush(JEncoder *o)
Flush the underlying writer if JErr is clear.
int setLong(S64 val)
Write a JSON number.
Definition: JEncoder.h:406
int setName(const char *name)
Write an object member name before its value.
Definition: JEncoder.h:438
int setBoolean(bool val)
Write a JSON boolean.
Definition: JEncoder.h:425
int beginObject()
Begin a JSON object value; call setName() before each member value.
Definition: JEncoder.h:440
BA_API int JEncoder_setName(JEncoder *o, const char *name)
Write an object member name before its value.
BA_API int JEncoder_setBoolean(JEncoder *o, BaBool val)
Write a JSON boolean.
int flush()
Flush the underlying writer if JErr is clear.
Definition: JEncoder.h:450
int b64enc(const void *source, S32 slen)
Write binary data as a quoted standard Base64 string.
Definition: JEncoder.h:423
BA_API int JEncoder_vFmtString(JEncoder *o, const char *fmt, va_list argList)
Write formatted text between JSON quotes, or JSON null.
int beginArray()
Begin a JSON array value; array elements have no member-name call.
Definition: JEncoder.h:444
BA_API int JEncoder_fmtString(JEncoder *o, const char *fmt,...)
Format text inside JSON quotation marks.
BufPrint * getBufPrint()
Query output storage.
Definition: JEncoder.h:454
BA_API void JEncoder_constructor(JEncoder *o, JErr *err, BufPrint *out)
Initialize an encoder without writing output or resetting err.
int vFmtString(const char *fmt, va_list argList)
Write formatted text between JSON quotes, or JSON null.
Definition: JEncoder.h:419
BA_API int JEncoder_setInt(JEncoder *o, S32 val)
Write a JSON number.
#define JEncoder_destructor(o)
Call flush() without freeing the borrowed writer or error object.
Definition: JEncoder.h:308
BA_API int JEncoder_setLong(JEncoder *o, S64 val)
Write a JSON number.
int setNull()
Write JSON null.
Definition: JEncoder.h:427
int endArray()
Close the current array after its final complete element.
Definition: JEncoder.h:446
int endObject()
Close the current object after its final complete member.
Definition: JEncoder.h:442
BA_API int JEncoder_endObject(JEncoder *o)
Close the current object after its final complete member.
int setDouble(double val)
Write a JSON number.
Definition: JEncoder.h:409
~JEncoder()
Call flush() without freeing the borrowed writer or error object.
Definition: JEncoder.h:402
int set(const char *fmt,...)
Encode/serialize C structs/data to JSON using formatted output.
Definition: JEncoder.h:431
BA_API int JEncoder_beginArray(JEncoder *o)
Begin a JSON array value; array elements have no member-name call.
#define JEncoder_getErr(o)
Query error storage.
Definition: JEncoder.h:320
BA_API int JEncoder_setDouble(JEncoder *o, double val)
Write a JSON number.
BA_API int JEncoder_commit(JEncoder *o)
Permit a new top-level value and flush the writer.
JErr * getErr()
Query error storage.
Definition: JEncoder.h:448
BA_API int JEncoder_b64enc(JEncoder *o, const void *source, S32 slen)
Write binary data as a quoted standard Base64 string.
int commit()
Permit a new top-level value and flush the writer.
Definition: JEncoder.h:452
BA_API int JEncoder_beginObject(JEncoder *o)
Begin a JSON object value; call setName() before each member value.
#define JEncoder_getBufPrint(o)
Query output storage.
Definition: JEncoder.h:397
int setString(const char *val, size_t len)
Write a quoted JSON string through BufPrint::jsonString.
Definition: JEncoder.h:421
int setInt(S32 val)
Write a JSON number.
Definition: JEncoder.h:404
BA_API int JEncoder_setJV(JEncoder *o, struct JVal *val, BaBool iterateNext)
Serialize a JVal node and its child values.
BA_API int JEncoder_endArray(JEncoder *o)
Close the current array after its final complete element.
BA_API int JEncoder_setString(JEncoder *o, const char *val, size_t len)
Write a quoted JSON string through BufPrint::jsonString.
struct JEncoder JEncoder
The JEncoder can serialize a JSON JVAL syntax tree to the JSON text format.
int64_t S64
Signed 64-bit integer.
Definition: GenPrimT.h:87
int32_t S32
Signed 32-bit integer.
Definition: GenPrimT.h:85
uint8_t U8
Unsigned 8-bit integer.
Definition: GenPrimT.h:89
U8 BaBool
Boolean stored in an unsigned byte; FALSE is zero and TRUE is one.
Definition: GenPrimT.h:118
The BufPrint class, which implements a compact printf-style formatter, is a base class used by severa...
Definition: BufPrint.h:132
The JEncoder can serialize a JSON JVAL syntax tree to the JSON text format.
Definition: JEncoder.h:74
The JSON error container object.
Definition: JParser.h:173
JVal represents a value in a JSON tree.
Definition: JVal.h:78