json-c 0.18
Macros | Functions
json_util.h File Reference

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_objectjson_object_from_file (const char *filename)
 
JSON_EXPORT struct json_objectjson_object_from_fd_ex (int fd, int depth)
 
JSON_EXPORT struct json_objectjson_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)
 

Detailed Description

Miscllaneous utility functions and macros.

Macro Definition Documentation

◆ JSON_FILE_BUF_SIZE

#define JSON_FILE_BUF_SIZE   4096

◆ json_max

#define json_max (   a,
 
)    ((a) > (b) ? (a) : (b))

◆ json_min

#define json_min (   a,
 
)    ((a) < (b) ? (a) : (b))

Function Documentation

◆ json_object_from_fd()

JSON_EXPORT struct json_object * json_object_from_fd ( int  fd)

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.

◆ json_object_from_fd_ex()

JSON_EXPORT struct json_object * json_object_from_fd_ex ( int  fd,
int  depth 
)

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.

◆ json_object_from_file()

JSON_EXPORT struct json_object * json_object_from_file ( const char *  filename)

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_object_to_fd()

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.

Parameters
fdan open, writable file descriptor to write to
objthe object to serializer and write
flagsflags to pass to json_object_to_json_string_ext()
Returns
-1 if something fails. See json_util_get_last_err() for details.

◆ json_object_to_file()

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_object_to_file_ext()

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_parse_double()

JSON_EXPORT int json_parse_double ( const char *  buf,
double *  retval 
)

◆ json_parse_int64()

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_parse_uint64()

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_type_to_name()

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_util_get_last_err()

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.