Go to the documentation of this file.
75 #ifndef _JSON_GENERATOR_H_
76 #define _JSON_GENERATOR_H_
79 namespace VirgilIoTKit {
83 #define MAX_JSON_STR_LEN 64
84 #define MAX_JSON_VAL_LEN 128
178 #define json_pop_object(jptr) json_close_object((jptr))
240 #define json_set_val_str(jptr, name, val) json_set_object_value(jptr, name, val, 0, 0.0, 0, JSON_VAL_STR)
252 #define json_set_val_int(jptr, name, val) json_set_object_value(jptr, name, NULL, val, 0.0, 0, JSON_VAL_INT)
264 #define json_set_val_uint(jptr, name, val) json_set_object_value(jptr, name, NULL, val, 0.0, 0, JSON_VAL_UINT)
276 #define json_set_val_uint_64(jptr, name, val) json_set_object_value(jptr, name, NULL, val, 0.0, 0, JSON_VAL_UINT_64)
288 #define json_set_val_float(jptr, name, val) json_set_object_value(jptr, name, NULL, 0, val, 2, JSON_VAL_FLOAT)
301 #define json_set_val_float_precision(jptr, name, val, precision) \
302 json_set_object_value(jptr, name, NULL, 0, val, precision, JSON_VAL_FLOAT)
314 #define json_set_val_bool(jptr, name, val) \
315 ((val == true) ? (json_set_object_value(jptr, name, NULL, 1, 0.0, 0, JSON_VAL_BOOL)) \
316 : (json_set_object_value(jptr, name, NULL, 0, 0.0, 0, JSON_VAL_BOOL)))
327 #define json_set_val_null(jptr, name) (json_set_object_value(jptr, name, NULL, 0, 0.0, 0, JSON_VAL_NULL))
370 #define json_set_array_str(jptr, val) json_set_array_value(jptr, val, 0, 0.0, JSON_VAL_STR)
381 #define json_set_array_int(jptr, val) json_set_array_value(jptr, NULL, val, 0.0, JSON_VAL_INT)
392 #define json_set_array_float(jptr, val) json_set_array_value(jptr, NULL, 0, val, JSON_VAL_FLOAT)
403 #define json_set_array_bool(jptr, val) \
404 ((val == true) ? (json_set_array_value(jptr, NULL, 1, 0.0, JSON_VAL_BOOL)) \
405 : (json_set_array_value(jptr, NULL, 0, 0.0, JSON_VAL_BOOL)))
void json_str_finish(struct json_str *jptr)
void json_str_init_no_clear(struct json_str *jptr, char *buff, int len)
Initialize the JSON generator without clearing the buffer.
int json_close_array(struct json_str *jptr)
Close a JSON array.
int json_set_array_value(struct json_str *jptr, char *str, int value, float val, json_data_types data)
@ JSON_VAL_BOOL
Definition: json_generator.h:91
size_t free_ptr
Definition: json_generator.h:98
@ JSON_VAL_FLOAT
Definition: json_generator.h:90
int json_pop_array_object(struct json_str *jptr)
Close a JSON array object.
char * buff
Definition: json_generator.h:96
int json_set_object_value(struct json_str *jptr, const char *name, const char *str, int64_t value, float val, short precision, json_data_types data)
@ JSON_VAL_STR
Definition: json_generator.h:86
@ JSON_VAL_UINT_64
Definition: json_generator.h:89
Definition: json_generator.h:95
@ JSON_VAL_UINT
Definition: json_generator.h:88
size_t len
Definition: json_generator.h:97
int json_start_object(struct json_str *jptr)
Start a new JSON object.
int json_push_object(struct json_str *jptr, const char *name)
Start a new composite object.
int json_push_array_object(struct json_str *jptr, const char *name)
Start a JSON array object.
@ JSON_VAL_INT
Definition: json_generator.h:87
void json_str_init(struct json_str *jptr, char *buff, int len)
Initialize the JSON generator.
int json_close_object(struct json_str *jptr)
Close JSON object.
@ JSON_VAL_NULL
Definition: json_generator.h:92
int json_start_array(struct json_str *jptr)
Start a JSON array.
json_data_types
Definition: json_generator.h:85