json-c
0.17
|
Miscllaneous utility functions and macros. More...
Macros | |
#define | json_min(a, b) ((a) < (b) ? (a) : (b)) |
#define | json_max(a, b) ((a) > (b) ? (a) : (b)) |
#define | JSON_FILE_BUF_SIZE 4096 |
Functions | |
JSON_EXPORT struct json_object * | json_object_from_file (const char *filename) |
JSON_EXPORT struct json_object * | json_object_from_fd_ex (int fd, int depth) |
JSON_EXPORT struct json_object * | json_object_from_fd (int fd) |
JSON_EXPORT int | json_object_to_file (const char *filename, struct json_object *obj) |
JSON_EXPORT int | json_object_to_file_ext (const char *filename, struct json_object *obj, int flags) |
JSON_EXPORT int | json_object_to_fd (int fd, struct json_object *obj, int flags) |
JSON_EXPORT const char * | json_util_get_last_err (void) |
JSON_EXPORT int | json_parse_int64 (const char *buf, int64_t *retval) |
JSON_EXPORT int | json_parse_uint64 (const char *buf, uint64_t *retval) |
JSON_EXPORT int | json_parse_double (const char *buf, double *retval) |
JSON_EXPORT const char * | json_type_to_name (enum json_type o_type) |
Miscllaneous utility functions and macros.
#define JSON_FILE_BUF_SIZE 4096 |
#define json_max | ( | a, | |
b | |||
) | ((a) > (b) ? (a) : (b)) |
#define json_min | ( | a, | |
b | |||
) | ((a) < (b) ? (a) : (b)) |
|
read |
Create a JSON object from an already opened file descriptor, using the default maximum object depth. (JSON_TOKENER_DEFAULT_DEPTH)
See json_object_from_fd_ex() for details.
|
read |
Create a JSON object from already opened file descriptor.
This function can be helpful, when you opened the file already, e.g. when you have a temp file. Note, that the fd must be readable at the actual position, i.e. use lseek(fd, 0, SEEK_SET) before.
The depth argument specifies the maximum object depth to pass to json_tokener_new_ex(). When depth == -1, JSON_TOKENER_DEFAULT_DEPTH is used instead.
Returns NULL on failure. See json_util_get_last_err() for details.
|
read |
Read the full contents of the given file, then convert it to a json_object using json_tokener_parse().
Returns NULL on failure. See json_util_get_last_err() for details.
JSON_EXPORT int json_object_to_fd | ( | int | fd, |
struct json_object * | obj, | ||
int | flags | ||
) |
Convert the json_object to a string and write it to the file descriptor. Handles partial writes and will keep writing until done, or an error occurs.
fd | an open, writable file descriptor to write to |
obj | the object to serializer and write |
flags | flags to pass to json_object_to_json_string_ext() |
JSON_EXPORT int json_object_to_file | ( | const char * | filename, |
struct json_object * | obj | ||
) |
Equivalent to: json_object_to_file_ext(filename, obj, JSON_C_TO_STRING_PLAIN);
Returns -1 if something fails. See json_util_get_last_err() for details.
JSON_EXPORT int json_object_to_file_ext | ( | const char * | filename, |
struct json_object * | obj, | ||
int | flags | ||
) |
Open and truncate the given file, creating it if necessary, then convert the json_object to a string and write it to the file.
Returns -1 if something fails. See json_util_get_last_err() for details.
JSON_EXPORT int json_parse_double | ( | const char * | buf, |
double * | retval | ||
) |
JSON_EXPORT int json_parse_int64 | ( | const char * | buf, |
int64_t * | retval | ||
) |
A parsing helper for integer values. Returns 0 on success, with the parsed value assigned to *retval. Overflow/underflow are NOT considered errors, but errno will be set to ERANGE, just like the strtol/strtoll functions do.
JSON_EXPORT int json_parse_uint64 | ( | const char * | buf, |
uint64_t * | retval | ||
) |
A parsing help for integer values, providing one extra bit of magnitude beyond json_parse_int64().
JSON_EXPORT const char* json_type_to_name | ( | enum json_type | o_type | ) |
Return a string describing the type of the object. e.g. "int", or "object", etc...
JSON_EXPORT const char* json_util_get_last_err | ( | void | ) |
Return the last error from various json-c functions, including: json_object_to_file{,ext}, json_object_to_fd() or json_object_from{file,fd}, or NULL if there is none.