11.2. json — JSON encoding and decoding¶
Source code: src/encode/json.h, src/encode/json.c
Test code: tst/encode/json/main.c
Test coverage: src/encode/json.c
- Version
- 7.0.0
Enums
Functions
-
int
json_init(struct json_t *self_p, struct json_tok_t *tokens_p, int num_tokens)¶ Initialize given JSON object.
- Return
- zero(0) or negative error code.
- Parameters
self_p-JSON object to initialize.
tokens_p-Array of tokens.
num_tokens-Number of tokens.
-
int
json_parse(struct json_t *self_p, const char *js_p, size_t len)¶ Parse given JSON data string into and array of tokens, each describing a single JSON object.
- Return
- Number of decoded tokens or negative error code.
- Parameters
self_p-JSON object.
js_p-JSON string to parse.
len-JSON string length in bytes.
-
ssize_t
json_dumps(struct json_t *self_p, struct json_tok_t *tokens_p, char *js_p)¶ Format and write given JSON tokens into a string.
- Return
- Dumped string length (not including termination) or negative error code.
- Parameters
self_p-JSON object.
tokens_p-Root token to dump. Set to NULL to dump the whole object.
js_p-Dumped null terminated JSON string.
-
ssize_t
json_dump(struct json_t *self_p, struct json_tok_t *tokens_p, chan_t *out_p)¶ Format and write given JSON tokens to given channel.
- Return
- Dumped string length (not including termination) or negative error code.
- Parameters
self_p-JSON object.
tokens_p-Root token to dump. Set to NULL to dump the whole object.
out_p-Channel to dump the null terminated JSON string to.
-
struct json_tok_t *
json_root(struct json_t *self_p)¶ Get the root token.
- Return
- The root token or NULL on failure.
- Parameters
self_p-JSON object.
-
struct json_tok_t *
json_object_get(struct json_t *self_p, const char *key_p, struct json_tok_t *object_p)¶ Get the value the string token with given key.
- Return
- Token or NULL on error.
- Parameters
self_p-JSON object.
key_p-Key of the value to get.
object_p-The object to get the value from.
-
struct json_tok_t *
json_object_get_primitive(struct json_t *self_p, const char *key_p, struct json_tok_t *object_p)¶ Get the value of the primitive token with given key.
- Return
- Token or NULL on error.
- Parameters
self_p-JSON object.
key_p-Key of the value to get.
object_p-The object to get the value from.
-
struct json_tok_t *
json_array_get(struct json_t *self_p, int index, struct json_tok_t *array_p)¶ Get the token of given array index.
- Return
- Token or NULL on error.
- Parameters
self_p-JSON object.
index-Index to get.
array_p-The array to get the element from.
-
void
json_token_object(struct json_tok_t *token_p, int num_keys)¶ Initialize a JSON object token.
- Parameters
token_p-Initialized token.
num_keys-Number of keys in the object.
-
void
json_token_array(struct json_tok_t *token_p, int num_elements)¶ Initialize a JSON array token.
- Parameters
token_p-Initialized token.
num_elements-Number of array elements.
-
void
json_token_true(struct json_tok_t *token_p)¶ Initialize a JSON boolean true token.
- Parameters
token_p-Initialized token.
-
void
json_token_false(struct json_tok_t *token_p)¶ Initialize a JSON boolean false token.
- Parameters
token_p-Initialized token.
-
void
json_token_null(struct json_tok_t *token_p)¶ Initialize a JSON null token.
- Parameters
token_p-Initialized token.
-
void
json_token_number(struct json_tok_t *token_p, const char *buf_p, size_t size)¶ Initialize a JSON number (integer/float) token.
- Parameters
token_p-Initialized token.
buf_p-Number as a string.
size-String length.
-
void
json_token_string(struct json_tok_t *token_p, const char *buf_p, size_t size)¶ Initialize a JSON string token.
- Parameters
token_p-Initialized token.
buf_p-String.
size-String length.
-
struct
json_tok_t¶
-
struct
json_t¶