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
Enums
Functions
-
int
json_init(struct json_t *self_p, struct json_tok_t *tokens_p, int num_tokens)¶ Initialize given JSON object. The JSON object must be initialized before it can be used to parse and dump JSON data.
- Return
- zero(0) or negative error code.
- Parameters
self_p: JSON object to initialize.tokens_p: Array of tokens. The tokens are either filled by the parsing functionjson_parse(), or already filled by the user when calling this function. The latter can be used to dump the tokens as a string by callingjson_dump()orjson_dumps().num_tokens: Number of tokens in the array.
-
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, void *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¶