libtrap  1.16.1
Data Structures | Macros | Typedefs | Enumerations | Functions
jansson.h File Reference
#include <stdio.h>
#include <stdlib.h>
#include <stdarg.h>
Include dependency graph for jansson.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Data Structures

struct  json_t
 
struct  json_error_t
 

Macros

#define JSON_INLINE   inline
 
#define JSON_INTEGER_IS_LONG_LONG   1
 
#define JSON_HAVE_LOCALECONV   1
 
#define JANSSON_MAJOR_VERSION   2
 
#define JANSSON_MINOR_VERSION   7
 
#define JANSSON_MICRO_VERSION   0
 
#define JANSSON_VERSION   "2.7"
 
#define JANSSON_VERSION_HEX
 
#define JSON_INTEGER_FORMAT   "lld"
 
#define json_typeof(json)   ((json)->type)
 
#define json_is_object(json)   ((json) && json_typeof(json) == JSON_OBJECT)
 
#define json_is_array(json)   ((json) && json_typeof(json) == JSON_ARRAY)
 
#define json_is_string(json)   ((json) && json_typeof(json) == JSON_STRING)
 
#define json_is_integer(json)   ((json) && json_typeof(json) == JSON_INTEGER)
 
#define json_is_real(json)   ((json) && json_typeof(json) == JSON_REAL)
 
#define json_is_number(json)   (json_is_integer(json) || json_is_real(json))
 
#define json_is_true(json)   ((json) && json_typeof(json) == JSON_TRUE)
 
#define json_is_false(json)   ((json) && json_typeof(json) == JSON_FALSE)
 
#define json_boolean_value   json_is_true
 
#define json_is_boolean(json)   (json_is_true(json) || json_is_false(json))
 
#define json_is_null(json)   ((json) && json_typeof(json) == JSON_NULL)
 
#define json_boolean(val)   ((val) ? json_true() : json_false())
 
#define JSON_ERROR_TEXT_LENGTH   160
 
#define JSON_ERROR_SOURCE_LENGTH   80
 
#define json_object_foreach(object, key, value)
 
#define json_array_foreach(array, index, value)
 
#define JSON_VALIDATE_ONLY   0x1
 
#define JSON_STRICT   0x2
 
#define JSON_REJECT_DUPLICATES   0x1
 
#define JSON_DISABLE_EOF_CHECK   0x2
 
#define JSON_DECODE_ANY   0x4
 
#define JSON_DECODE_INT_AS_REAL   0x8
 
#define JSON_ALLOW_NUL   0x10
 
#define JSON_MAX_INDENT   0x1F
 
#define JSON_INDENT(n)   ((n) & JSON_MAX_INDENT)
 
#define JSON_COMPACT   0x20
 
#define JSON_ENSURE_ASCII   0x40
 
#define JSON_SORT_KEYS   0x80
 
#define JSON_PRESERVE_ORDER   0x100
 
#define JSON_ENCODE_ANY   0x200
 
#define JSON_ESCAPE_SLASH   0x400
 
#define JSON_REAL_PRECISION(n)   (((n) & 0x1F) << 11)
 

Typedefs

typedef struct json_t json_t
 
typedef long long json_int_t
 
typedef size_t(* json_load_callback_t) (void *buffer, size_t buflen, void *data)
 
typedef int(* json_dump_callback_t) (const char *buffer, size_t size, void *data)
 
typedef void *(* json_malloc_t) (size_t)
 
typedef void(* json_free_t) (void *)
 

Enumerations

enum  json_type {
  JSON_OBJECT, JSON_ARRAY, JSON_STRING, JSON_INTEGER,
  JSON_REAL, JSON_TRUE, JSON_FALSE, JSON_NULL
}
 

Functions

json_tjson_object (void)
 
json_tjson_array (void)
 
json_tjson_string (const char *value)
 
json_tjson_stringn (const char *value, size_t len)
 
json_tjson_string_nocheck (const char *value)
 
json_tjson_stringn_nocheck (const char *value, size_t len)
 
json_tjson_integer (json_int_t value)
 
json_tjson_real (double value)
 
json_tjson_true (void)
 
json_tjson_false (void)
 
json_tjson_null (void)
 
void json_delete (json_t *json)
 
void json_object_seed (size_t seed)
 
size_t json_object_size (const json_t *object)
 
json_tjson_object_get (const json_t *object, const char *key)
 
int json_object_set_new (json_t *object, const char *key, json_t *value)
 
int json_object_set_new_nocheck (json_t *object, const char *key, json_t *value)
 
int json_object_del (json_t *object, const char *key)
 
int json_object_clear (json_t *object)
 
int json_object_update (json_t *object, json_t *other)
 
int json_object_update_existing (json_t *object, json_t *other)
 
int json_object_update_missing (json_t *object, json_t *other)
 
void * json_object_iter (json_t *object)
 
void * json_object_iter_at (json_t *object, const char *key)
 
void * json_object_key_to_iter (const char *key)
 
void * json_object_iter_next (json_t *object, void *iter)
 
const char * json_object_iter_key (void *iter)
 
json_tjson_object_iter_value (void *iter)
 
int json_object_iter_set_new (json_t *object, void *iter, json_t *value)
 
size_t json_array_size (const json_t *array)
 
json_tjson_array_get (const json_t *array, size_t index)
 
int json_array_set_new (json_t *array, size_t index, json_t *value)
 
int json_array_append_new (json_t *array, json_t *value)
 
int json_array_insert_new (json_t *array, size_t index, json_t *value)
 
int json_array_remove (json_t *array, size_t index)
 
int json_array_clear (json_t *array)
 
int json_array_extend (json_t *array, json_t *other)
 
const char * json_string_value (const json_t *string)
 
size_t json_string_length (const json_t *string)
 
json_int_t json_integer_value (const json_t *integer)
 
double json_real_value (const json_t *real)
 
double json_number_value (const json_t *json)
 
int json_string_set (json_t *string, const char *value)
 
int json_string_setn (json_t *string, const char *value, size_t len)
 
int json_string_set_nocheck (json_t *string, const char *value)
 
int json_string_setn_nocheck (json_t *string, const char *value, size_t len)
 
int json_integer_set (json_t *integer, json_int_t value)
 
int json_real_set (json_t *real, double value)
 
json_tjson_pack (const char *fmt,...)
 
json_tjson_pack_ex (json_error_t *error, size_t flags, const char *fmt,...)
 
json_tjson_vpack_ex (json_error_t *error, size_t flags, const char *fmt, va_list ap)
 
int json_unpack (json_t *root, const char *fmt,...)
 
int json_unpack_ex (json_t *root, json_error_t *error, size_t flags, const char *fmt,...)
 
int json_vunpack_ex (json_t *root, json_error_t *error, size_t flags, const char *fmt, va_list ap)
 
int json_equal (json_t *value1, json_t *value2)
 
json_tjson_copy (json_t *value)
 
json_tjson_deep_copy (const json_t *value)
 
json_tjson_loads (const char *input, size_t flags, json_error_t *error)
 
json_tjson_loadb (const char *buffer, size_t buflen, size_t flags, json_error_t *error)
 
json_tjson_loadf (FILE *input, size_t flags, json_error_t *error)
 
json_tjson_load_file (const char *path, size_t flags, json_error_t *error)
 
json_tjson_load_callback (json_load_callback_t callback, void *data, size_t flags, json_error_t *error)
 
char * json_dumps (const json_t *json, size_t flags)
 
int json_dumpf (const json_t *json, FILE *output, size_t flags)
 
int json_dump_file (const json_t *json, const char *path, size_t flags)
 
int json_dump_callback (const json_t *json, json_dump_callback_t callback, void *data, size_t flags)
 
void json_set_alloc_funcs (json_malloc_t malloc_fn, json_free_t free_fn)
 

Macro Definition Documentation

◆ JANSSON_MAJOR_VERSION

#define JANSSON_MAJOR_VERSION   2

Definition at line 42 of file jansson.h.

◆ JANSSON_MICRO_VERSION

#define JANSSON_MICRO_VERSION   0

Definition at line 44 of file jansson.h.

◆ JANSSON_MINOR_VERSION

#define JANSSON_MINOR_VERSION   7

Definition at line 43 of file jansson.h.

◆ JANSSON_VERSION

#define JANSSON_VERSION   "2.7"

Definition at line 47 of file jansson.h.

◆ JANSSON_VERSION_HEX

#define JANSSON_VERSION_HEX
Value:
#define JANSSON_MINOR_VERSION
Definition: jansson.h:43
#define JANSSON_MICRO_VERSION
Definition: jansson.h:44
#define JANSSON_MAJOR_VERSION
Definition: jansson.h:42

Definition at line 51 of file jansson.h.

◆ JSON_ALLOW_NUL

#define JSON_ALLOW_NUL   0x10

Definition at line 264 of file jansson.h.

◆ json_array_foreach

#define json_array_foreach (   array,
  index,
  value 
)
Value:
for(index = 0; \
index < json_array_size(array) && (value = json_array_get(array, index)); \
index++)
size_t json_array_size(const json_t *array)
json_t * json_array_get(const json_t *array, size_t index)

Definition at line 170 of file jansson.h.

◆ json_boolean

#define json_boolean (   val)    ((val) ? json_true() : json_false())

Definition at line 109 of file jansson.h.

◆ json_boolean_value

#define json_boolean_value   json_is_true

Definition at line 93 of file jansson.h.

◆ JSON_COMPACT

#define JSON_COMPACT   0x20

Definition at line 279 of file jansson.h.

◆ JSON_DECODE_ANY

#define JSON_DECODE_ANY   0x4

Definition at line 262 of file jansson.h.

◆ JSON_DECODE_INT_AS_REAL

#define JSON_DECODE_INT_AS_REAL   0x8

Definition at line 263 of file jansson.h.

◆ JSON_DISABLE_EOF_CHECK

#define JSON_DISABLE_EOF_CHECK   0x2

Definition at line 261 of file jansson.h.

◆ JSON_ENCODE_ANY

#define JSON_ENCODE_ANY   0x200

Definition at line 283 of file jansson.h.

◆ JSON_ENSURE_ASCII

#define JSON_ENSURE_ASCII   0x40

Definition at line 280 of file jansson.h.

◆ JSON_ERROR_SOURCE_LENGTH

#define JSON_ERROR_SOURCE_LENGTH   80

Definition at line 134 of file jansson.h.

◆ JSON_ERROR_TEXT_LENGTH

#define JSON_ERROR_TEXT_LENGTH   160

Definition at line 133 of file jansson.h.

◆ JSON_ESCAPE_SLASH

#define JSON_ESCAPE_SLASH   0x400

Definition at line 284 of file jansson.h.

◆ JSON_HAVE_LOCALECONV

#define JSON_HAVE_LOCALECONV   1

Definition at line 33 of file jansson.h.

◆ JSON_INDENT

#define JSON_INDENT (   n)    ((n) & JSON_MAX_INDENT)

Definition at line 278 of file jansson.h.

◆ JSON_INLINE

#define JSON_INLINE   inline

Definition at line 19 of file jansson.h.

◆ JSON_INTEGER_FORMAT

#define JSON_INTEGER_FORMAT   "lld"

Definition at line 76 of file jansson.h.

◆ JSON_INTEGER_IS_LONG_LONG

#define JSON_INTEGER_IS_LONG_LONG   1

Definition at line 27 of file jansson.h.

◆ json_is_array

#define json_is_array (   json)    ((json) && json_typeof(json) == JSON_ARRAY)

Definition at line 86 of file jansson.h.

◆ json_is_boolean

#define json_is_boolean (   json)    (json_is_true(json) || json_is_false(json))

Definition at line 94 of file jansson.h.

◆ json_is_false

#define json_is_false (   json)    ((json) && json_typeof(json) == JSON_FALSE)

Definition at line 92 of file jansson.h.

◆ json_is_integer

#define json_is_integer (   json)    ((json) && json_typeof(json) == JSON_INTEGER)

Definition at line 88 of file jansson.h.

◆ json_is_null

#define json_is_null (   json)    ((json) && json_typeof(json) == JSON_NULL)

Definition at line 95 of file jansson.h.

◆ json_is_number

#define json_is_number (   json)    (json_is_integer(json) || json_is_real(json))

Definition at line 90 of file jansson.h.

◆ json_is_object

#define json_is_object (   json)    ((json) && json_typeof(json) == JSON_OBJECT)

Definition at line 85 of file jansson.h.

◆ json_is_real

#define json_is_real (   json)    ((json) && json_typeof(json) == JSON_REAL)

Definition at line 89 of file jansson.h.

◆ json_is_string

#define json_is_string (   json)    ((json) && json_typeof(json) == JSON_STRING)

Definition at line 87 of file jansson.h.

◆ json_is_true

#define json_is_true (   json)    ((json) && json_typeof(json) == JSON_TRUE)

Definition at line 91 of file jansson.h.

◆ JSON_MAX_INDENT

#define JSON_MAX_INDENT   0x1F

Definition at line 277 of file jansson.h.

◆ json_object_foreach

#define json_object_foreach (   object,
  key,
  value 
)
Value:
void * json_object_iter(json_t *object)
void * json_object_key_to_iter(const char *key)
const char * json_object_iter_key(void *iter)
json_t * json_object_iter_value(void *iter)
void * json_object_iter_next(json_t *object, void *iter)

Definition at line 165 of file jansson.h.

◆ JSON_PRESERVE_ORDER

#define JSON_PRESERVE_ORDER   0x100

Definition at line 282 of file jansson.h.

◆ JSON_REAL_PRECISION

#define JSON_REAL_PRECISION (   n)    (((n) & 0x1F) << 11)

Definition at line 285 of file jansson.h.

◆ JSON_REJECT_DUPLICATES

#define JSON_REJECT_DUPLICATES   0x1

Definition at line 260 of file jansson.h.

◆ JSON_SORT_KEYS

#define JSON_SORT_KEYS   0x80

Definition at line 281 of file jansson.h.

◆ JSON_STRICT

#define JSON_STRICT   0x2

Definition at line 240 of file jansson.h.

◆ json_typeof

#define json_typeof (   json)    ((json)->type)

Definition at line 84 of file jansson.h.

◆ JSON_VALIDATE_ONLY

#define JSON_VALIDATE_ONLY   0x1

Definition at line 239 of file jansson.h.

Typedef Documentation

◆ json_dump_callback_t

typedef int(* json_dump_callback_t) (const char *buffer, size_t size, void *data)

Definition at line 287 of file jansson.h.

◆ json_free_t

typedef void(* json_free_t) (void *)

Definition at line 297 of file jansson.h.

◆ json_int_t

typedef long long json_int_t

Definition at line 77 of file jansson.h.

◆ json_load_callback_t

typedef size_t(* json_load_callback_t) (void *buffer, size_t buflen, void *data)

Definition at line 266 of file jansson.h.

◆ json_malloc_t

typedef void*(* json_malloc_t) (size_t)

Definition at line 296 of file jansson.h.

◆ json_t

typedef struct json_t json_t

Enumeration Type Documentation

◆ json_type

enum json_type
Enumerator
JSON_OBJECT 
JSON_ARRAY 
JSON_STRING 
JSON_INTEGER 
JSON_REAL 
JSON_TRUE 
JSON_FALSE 
JSON_NULL 

Definition at line 58 of file jansson.h.

Function Documentation

◆ json_array()

json_t* json_array ( void  )

◆ json_array_append_new()

int json_array_append_new ( json_t array,
json_t value 
)

◆ json_array_clear()

int json_array_clear ( json_t array)

◆ json_array_extend()

int json_array_extend ( json_t array,
json_t other 
)

◆ json_array_get()

json_t* json_array_get ( const json_t array,
size_t  index 
)

◆ json_array_insert_new()

int json_array_insert_new ( json_t array,
size_t  index,
json_t value 
)

◆ json_array_remove()

int json_array_remove ( json_t array,
size_t  index 
)

◆ json_array_set_new()

int json_array_set_new ( json_t array,
size_t  index,
json_t value 
)

◆ json_array_size()

size_t json_array_size ( const json_t array)

◆ json_copy()

json_t* json_copy ( json_t value)

◆ json_deep_copy()

json_t* json_deep_copy ( const json_t value)

◆ json_delete()

void json_delete ( json_t json)

◆ json_dump_callback()

int json_dump_callback ( const json_t json,
json_dump_callback_t  callback,
void *  data,
size_t  flags 
)

◆ json_dump_file()

int json_dump_file ( const json_t json,
const char *  path,
size_t  flags 
)

◆ json_dumpf()

int json_dumpf ( const json_t json,
FILE *  output,
size_t  flags 
)

◆ json_dumps()

char* json_dumps ( const json_t json,
size_t  flags 
)

◆ json_equal()

int json_equal ( json_t value1,
json_t value2 
)

◆ json_false()

json_t* json_false ( void  )

◆ json_integer()

json_t* json_integer ( json_int_t  value)

◆ json_integer_set()

int json_integer_set ( json_t integer,
json_int_t  value 
)

◆ json_integer_value()

json_int_t json_integer_value ( const json_t integer)

◆ json_load_callback()

json_t* json_load_callback ( json_load_callback_t  callback,
void *  data,
size_t  flags,
json_error_t error 
)

◆ json_load_file()

json_t* json_load_file ( const char *  path,
size_t  flags,
json_error_t error 
)

◆ json_loadb()

json_t* json_loadb ( const char *  buffer,
size_t  buflen,
size_t  flags,
json_error_t error 
)

◆ json_loadf()

json_t* json_loadf ( FILE *  input,
size_t  flags,
json_error_t error 
)

◆ json_loads()

json_t* json_loads ( const char *  input,
size_t  flags,
json_error_t error 
)

◆ json_null()

json_t* json_null ( void  )

◆ json_number_value()

double json_number_value ( const json_t json)

◆ json_object()

json_t* json_object ( void  )

◆ json_object_clear()

int json_object_clear ( json_t object)

◆ json_object_del()

int json_object_del ( json_t object,
const char *  key 
)

◆ json_object_get()

json_t* json_object_get ( const json_t object,
const char *  key 
)

◆ json_object_iter()

void* json_object_iter ( json_t object)

◆ json_object_iter_at()

void* json_object_iter_at ( json_t object,
const char *  key 
)

◆ json_object_iter_key()

const char* json_object_iter_key ( void *  iter)

◆ json_object_iter_next()

void* json_object_iter_next ( json_t object,
void *  iter 
)

◆ json_object_iter_set_new()

int json_object_iter_set_new ( json_t object,
void *  iter,
json_t value 
)

◆ json_object_iter_value()

json_t* json_object_iter_value ( void *  iter)

◆ json_object_key_to_iter()

void* json_object_key_to_iter ( const char *  key)

◆ json_object_seed()

void json_object_seed ( size_t  seed)

◆ json_object_set_new()

int json_object_set_new ( json_t object,
const char *  key,
json_t value 
)

◆ json_object_set_new_nocheck()

int json_object_set_new_nocheck ( json_t object,
const char *  key,
json_t value 
)

◆ json_object_size()

size_t json_object_size ( const json_t object)

◆ json_object_update()

int json_object_update ( json_t object,
json_t other 
)

◆ json_object_update_existing()

int json_object_update_existing ( json_t object,
json_t other 
)

◆ json_object_update_missing()

int json_object_update_missing ( json_t object,
json_t other 
)

◆ json_pack()

json_t* json_pack ( const char *  fmt,
  ... 
)

◆ json_pack_ex()

json_t* json_pack_ex ( json_error_t error,
size_t  flags,
const char *  fmt,
  ... 
)

◆ json_real()

json_t* json_real ( double  value)

◆ json_real_set()

int json_real_set ( json_t real,
double  value 
)

◆ json_real_value()

double json_real_value ( const json_t real)

◆ json_set_alloc_funcs()

void json_set_alloc_funcs ( json_malloc_t  malloc_fn,
json_free_t  free_fn 
)

◆ json_string()

json_t* json_string ( const char *  value)

◆ json_string_length()

size_t json_string_length ( const json_t string)

◆ json_string_nocheck()

json_t* json_string_nocheck ( const char *  value)

◆ json_string_set()

int json_string_set ( json_t string,
const char *  value 
)

◆ json_string_set_nocheck()

int json_string_set_nocheck ( json_t string,
const char *  value 
)

◆ json_string_setn()

int json_string_setn ( json_t string,
const char *  value,
size_t  len 
)

◆ json_string_setn_nocheck()

int json_string_setn_nocheck ( json_t string,
const char *  value,
size_t  len 
)

◆ json_string_value()

const char* json_string_value ( const json_t string)

◆ json_stringn()

json_t* json_stringn ( const char *  value,
size_t  len 
)

◆ json_stringn_nocheck()

json_t* json_stringn_nocheck ( const char *  value,
size_t  len 
)

◆ json_true()

json_t* json_true ( void  )

◆ json_unpack()

int json_unpack ( json_t root,
const char *  fmt,
  ... 
)

◆ json_unpack_ex()

int json_unpack_ex ( json_t root,
json_error_t error,
size_t  flags,
const char *  fmt,
  ... 
)

◆ json_vpack_ex()

json_t* json_vpack_ex ( json_error_t error,
size_t  flags,
const char *  fmt,
va_list  ap 
)

◆ json_vunpack_ex()

int json_vunpack_ex ( json_t root,
json_error_t error,
size_t  flags,
const char *  fmt,
va_list  ap 
)