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

struct json_object * | json_object_from_file (const char *filename)
struct json_object * | json_object_from_fd (int fd)
int | json_object_to_file (const char *filename, struct json_object *obj)
int | json_object_to_file_ext (const char *filename, struct json_object *obj, int flags)
int | json_object_to_fd (int fd, struct json_object *obj, int flags)
const char * | json_util_get_last_err (void)
int | json_parse_int64 (const char *buf, int64_t *retval)
int | json_parse_double (const char *buf, double *retval)
const char * | json_type_to_name (enum json_type o_type)

## Detailed Description

Miscllaneous utility functions and macros.

## Macro Definition Documentation

#define JSON_FILE_BUF_SIZE 4096

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

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

## Function Documentation

struct json_object* json_object_from_fd | ( | int | fd | ) |

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.

Returns -1 if something fails. See json_util_get_last_err() for details.

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 -1 if something fails. See json_util_get_last_err() for details.

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

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

Returns
  -1 if something fails. See json_util_get_last_err() for details.

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.

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.

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

int json_parse_int64 | ( | const char * | buf,
|  | int64_t * | retval
| ) |  |

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...

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.