Github User Fetcher 1.0.0
C Application with Server and GUI
Loading...
Searching...
No Matches
jansson.h File Reference
#include <stdarg.h>
#include <stdio.h>
#include <stdlib.h>
#include "jansson_config.h"

Go to the source code of this file.

Data Structures

struct  json_t
 
struct  json_error_t
 

Macros

#define JANSSON_MAJOR_VERSION   2
 
#define JANSSON_MINOR_VERSION   14
 
#define JANSSON_MICRO_VERSION   0
 
#define JANSSON_VERSION   "2.14"
 
#define JANSSON_VERSION_HEX
 
#define JANSSON_THREAD_SAFE_REFCOUNT   1
 
#define JANSSON_ATTRS(x)
 
#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_INTERNAL_INCREF(json)    __atomic_add_fetch(&json->refcount, 1, __ATOMIC_ACQUIRE)
 
#define JSON_INTERNAL_DECREF(json)    __atomic_sub_fetch(&json->refcount, 1, __ATOMIC_RELEASE)
 
#define JSON_ERROR_TEXT_LENGTH   160
 
#define JSON_ERROR_SOURCE_LENGTH   80
 
#define json_object_foreach(object, key, value)
 
#define json_object_keylen_foreach(object, key, key_len, value)
 
#define json_object_foreach_safe(object, n, key, value)
 
#define json_object_keylen_foreach_safe(object, n, key, key_len, 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)
 
#define JSON_EMBED   0x10000
 

Typedefs

typedef struct json_t json_t
 
typedef struct json_error_t json_error_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
}
 
enum  json_error_code {
  json_error_unknown , json_error_out_of_memory , json_error_stack_overflow , json_error_cannot_open_file ,
  json_error_invalid_argument , json_error_invalid_utf8 , json_error_premature_end_of_input , json_error_end_of_input_expected ,
  json_error_invalid_syntax , json_error_invalid_format , json_error_wrong_type , json_error_null_character ,
  json_error_null_value , json_error_null_byte_in_key , json_error_duplicate_key , json_error_numeric_overflow ,
  json_error_item_not_found , json_error_index_out_of_range
}
 

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)
 
static JSON_INLINE json_tjson_incref (json_t *json)
 
void json_delete (json_t *json)
 
static JSON_INLINE void json_decref (json_t *json)
 
static JSON_INLINE enum json_error_code json_error_code (const json_error_t *e)
 
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) JANSSON_ATTRS((warn_unused_result))
 
json_tjson_object_getn (const json_t *object, const char *key, size_t key_len) JANSSON_ATTRS((warn_unused_result))
 
int json_object_set_new (json_t *object, const char *key, json_t *value)
 
int json_object_setn_new (json_t *object, const char *key, size_t key_len, json_t *value)
 
int json_object_set_new_nocheck (json_t *object, const char *key, json_t *value)
 
int json_object_setn_new_nocheck (json_t *object, const char *key, size_t key_len, json_t *value)
 
int json_object_del (json_t *object, const char *key)
 
int json_object_deln (json_t *object, const char *key, size_t key_len)
 
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)
 
int json_object_update_recursive (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)
 
size_t json_object_iter_key_len (void *iter)
 
json_tjson_object_iter_value (void *iter)
 
int json_object_iter_set_new (json_t *object, void *iter, json_t *value)
 
static JSON_INLINE int json_object_set (json_t *object, const char *key, json_t *value)
 
static JSON_INLINE int json_object_setn (json_t *object, const char *key, size_t key_len, json_t *value)
 
static JSON_INLINE int json_object_set_nocheck (json_t *object, const char *key, json_t *value)
 
static JSON_INLINE int json_object_setn_nocheck (json_t *object, const char *key, size_t key_len, json_t *value)
 
static JSON_INLINE int json_object_iter_set (json_t *object, void *iter, json_t *value)
 
static JSON_INLINE int json_object_update_new (json_t *object, json_t *other)
 
static JSON_INLINE int json_object_update_existing_new (json_t *object, json_t *other)
 
static JSON_INLINE int json_object_update_missing_new (json_t *object, json_t *other)
 
size_t json_array_size (const json_t *array)
 
json_tjson_array_get (const json_t *array, size_t index) JANSSON_ATTRS((warn_unused_result))
 
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)
 
static JSON_INLINE int json_array_set (json_t *array, size_t ind, json_t *value)
 
static JSON_INLINE int json_array_append (json_t *array, json_t *value)
 
static JSON_INLINE int json_array_insert (json_t *array, size_t ind, json_t *value)
 
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,...) JANSSON_ATTRS((warn_unused_result))
 
json_tjson_pack_ex (json_error_t *error, size_t flags, const char *fmt,...) JANSSON_ATTRS((warn_unused_result))
 
json_tjson_vpack_ex (json_error_t *error, size_t flags, const char *fmt, va_list ap) JANSSON_ATTRS((warn_unused_result))
 
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)
 
json_tjson_sprintf (const char *fmt,...) JANSSON_ATTRS((warn_unused_result
 
json_t format (printf, 1, 2)))
 
json_tjson_vsprintf (const char *fmt, va_list ap) JANSSON_ATTRS((warn_unused_result
 
json_t format (printf, 1, 0)))
 
int json_equal (const json_t *value1, const json_t *value2)
 
json_tjson_copy (json_t *value) JANSSON_ATTRS((warn_unused_result))
 
json_tjson_deep_copy (const json_t *value) JANSSON_ATTRS((warn_unused_result))
 
json_tjson_loads (const char *input, size_t flags, json_error_t *error) JANSSON_ATTRS((warn_unused_result))
 
json_tjson_loadb (const char *buffer, size_t buflen, size_t flags, json_error_t *error) JANSSON_ATTRS((warn_unused_result))
 
json_tjson_loadf (FILE *input, size_t flags, json_error_t *error) JANSSON_ATTRS((warn_unused_result))
 
json_tjson_loadfd (int input, size_t flags, json_error_t *error) JANSSON_ATTRS((warn_unused_result))
 
json_tjson_load_file (const char *path, size_t flags, json_error_t *error) JANSSON_ATTRS((warn_unused_result))
 
json_tjson_load_callback (json_load_callback_t callback, void *data, size_t flags, json_error_t *error) JANSSON_ATTRS((warn_unused_result))
 
char * json_dumps (const json_t *json, size_t flags) JANSSON_ATTRS((warn_unused_result))
 
size_t json_dumpb (const json_t *json, char *buffer, size_t size, size_t flags)
 
int json_dumpf (const json_t *json, FILE *output, size_t flags)
 
int json_dumpfd (const json_t *json, int 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)
 
void json_get_alloc_funcs (json_malloc_t *malloc_fn, json_free_t *free_fn)
 
const char * jansson_version_str (void)
 
int jansson_version_cmp (int major, int minor, int micro)
 

Macro Definition Documentation

◆ JANSSON_ATTRS

#define JANSSON_ATTRS ( x)

Definition at line 45 of file jansson.h.

◆ JANSSON_MAJOR_VERSION

#define JANSSON_MAJOR_VERSION   2

Definition at line 23 of file jansson.h.

◆ JANSSON_MICRO_VERSION

#define JANSSON_MICRO_VERSION   0

Definition at line 25 of file jansson.h.

◆ JANSSON_MINOR_VERSION

#define JANSSON_MINOR_VERSION   14

Definition at line 24 of file jansson.h.

◆ JANSSON_THREAD_SAFE_REFCOUNT

#define JANSSON_THREAD_SAFE_REFCOUNT   1

Definition at line 39 of file jansson.h.

◆ JANSSON_VERSION

#define JANSSON_VERSION   "2.14"

Definition at line 28 of file jansson.h.

◆ JANSSON_VERSION_HEX

#define JANSSON_VERSION_HEX
Value:
#define JANSSON_MAJOR_VERSION
Definition jansson.h:23
#define JANSSON_MICRO_VERSION
Definition jansson.h:25
#define JANSSON_MINOR_VERSION
Definition jansson.h:24

Definition at line 32 of file jansson.h.

32#define JANSSON_VERSION_HEX \
33 ((JANSSON_MAJOR_VERSION << 16) | (JANSSON_MINOR_VERSION << 8) | \
34 (JANSSON_MICRO_VERSION << 0))

◆ JSON_ALLOW_NUL

#define JSON_ALLOW_NUL   0x10

Definition at line 362 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++)
guint index
json_t * json_array_get(const json_t *array, size_t index) JANSSON_ATTRS((warn_unused_result))
size_t json_array_size(const json_t *array)
int value
Definition lsqlite3.c:2155

Definition at line 243 of file jansson.h.

243#define json_array_foreach(array, index, value) \
244 for (index = 0; \
245 index < json_array_size(array) && (value = json_array_get(array, index)); \
246 index++)

◆ json_boolean

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

Definition at line 105 of file jansson.h.

◆ json_boolean_value

#define json_boolean_value   json_is_true

Definition at line 89 of file jansson.h.

◆ JSON_COMPACT

#define JSON_COMPACT   0x20

Definition at line 383 of file jansson.h.

◆ JSON_DECODE_ANY

#define JSON_DECODE_ANY   0x4

Definition at line 360 of file jansson.h.

◆ JSON_DECODE_INT_AS_REAL

#define JSON_DECODE_INT_AS_REAL   0x8

Definition at line 361 of file jansson.h.

◆ JSON_DISABLE_EOF_CHECK

#define JSON_DISABLE_EOF_CHECK   0x2

Definition at line 359 of file jansson.h.

◆ JSON_EMBED

#define JSON_EMBED   0x10000

Definition at line 390 of file jansson.h.

◆ JSON_ENCODE_ANY

#define JSON_ENCODE_ANY   0x200

Definition at line 387 of file jansson.h.

◆ JSON_ENSURE_ASCII

#define JSON_ENSURE_ASCII   0x40

Definition at line 384 of file jansson.h.

◆ JSON_ERROR_SOURCE_LENGTH

#define JSON_ERROR_SOURCE_LENGTH   80

Definition at line 150 of file jansson.h.

◆ JSON_ERROR_TEXT_LENGTH

#define JSON_ERROR_TEXT_LENGTH   160

Definition at line 149 of file jansson.h.

Referenced by json_error_code().

◆ JSON_ESCAPE_SLASH

#define JSON_ESCAPE_SLASH   0x400

Definition at line 388 of file jansson.h.

◆ JSON_INDENT

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

Definition at line 382 of file jansson.h.

◆ JSON_INTERNAL_DECREF

#define JSON_INTERNAL_DECREF ( json)     __atomic_sub_fetch(&json->refcount, 1, __ATOMIC_RELEASE)

Definition at line 112 of file jansson.h.

112#define JSON_INTERNAL_DECREF(json) \
113 __atomic_sub_fetch(&json->refcount, 1, __ATOMIC_RELEASE)

Referenced by json_decref().

◆ JSON_INTERNAL_INCREF

#define JSON_INTERNAL_INCREF ( json)     __atomic_add_fetch(&json->refcount, 1, __ATOMIC_ACQUIRE)

Definition at line 110 of file jansson.h.

110#define JSON_INTERNAL_INCREF(json) \
111 __atomic_add_fetch(&json->refcount, 1, __ATOMIC_ACQUIRE)

Referenced by json_incref().

◆ json_is_array

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

Definition at line 82 of file jansson.h.

◆ json_is_boolean

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

Definition at line 90 of file jansson.h.

◆ json_is_false

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

Definition at line 88 of file jansson.h.

◆ json_is_integer

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

Definition at line 84 of file jansson.h.

◆ json_is_null

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

Definition at line 91 of file jansson.h.

◆ json_is_number

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

Definition at line 86 of file jansson.h.

◆ json_is_object

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

Definition at line 81 of file jansson.h.

◆ json_is_real

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

Definition at line 85 of file jansson.h.

◆ json_is_string

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

Definition at line 83 of file jansson.h.

Referenced by fetch_github_user().

◆ json_is_true

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

Definition at line 87 of file jansson.h.

◆ JSON_MAX_INDENT

#define JSON_MAX_INDENT   0x1F

Definition at line 381 of file jansson.h.

◆ json_object_foreach

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

Definition at line 214 of file jansson.h.

214#define json_object_foreach(object, key, value) \
215 for (key = json_object_iter_key(json_object_iter(object)); \
216 key && (value = json_object_iter_value(json_object_key_to_iter(key))); \
217 key = json_object_iter_key( \
218 json_object_iter_next(object, json_object_key_to_iter(key))))

◆ json_object_foreach_safe

#define json_object_foreach_safe ( object,
n,
key,
value )
Value:

Definition at line 228 of file jansson.h.

228#define json_object_foreach_safe(object, n, key, value) \
229 for (key = json_object_iter_key(json_object_iter(object)), \
230 n = json_object_iter_next(object, json_object_key_to_iter(key)); \
231 key && (value = json_object_iter_value(json_object_key_to_iter(key))); \
232 key = json_object_iter_key(n), \
233 n = json_object_iter_next(object, json_object_key_to_iter(key)))

◆ json_object_keylen_foreach

#define json_object_keylen_foreach ( object,
key,
key_len,
value )
Value:

Definition at line 220 of file jansson.h.

220#define json_object_keylen_foreach(object, key, key_len, value) \
221 for (key = json_object_iter_key(json_object_iter(object)), \
222 key_len = json_object_iter_key_len(json_object_key_to_iter(key)); \
223 key && (value = json_object_iter_value(json_object_key_to_iter(key))); \
224 key = json_object_iter_key( \
225 json_object_iter_next(object, json_object_key_to_iter(key))), \
226 key_len = json_object_iter_key_len(json_object_key_to_iter(key)))

◆ json_object_keylen_foreach_safe

#define json_object_keylen_foreach_safe ( object,
n,
key,
key_len,
value )
Value:

Definition at line 235 of file jansson.h.

235#define json_object_keylen_foreach_safe(object, n, key, key_len, value) \
236 for (key = json_object_iter_key(json_object_iter(object)), \
237 n = json_object_iter_next(object, json_object_key_to_iter(key)), \
238 key_len = json_object_iter_key_len(json_object_key_to_iter(key)); \
239 key && (value = json_object_iter_value(json_object_key_to_iter(key))); \
240 key = json_object_iter_key(n), key_len = json_object_iter_key_len(n), \
241 n = json_object_iter_next(object, json_object_key_to_iter(key)))

◆ JSON_PRESERVE_ORDER

#define JSON_PRESERVE_ORDER   0x100

Definition at line 386 of file jansson.h.

◆ JSON_REAL_PRECISION

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

Definition at line 389 of file jansson.h.

◆ JSON_REJECT_DUPLICATES

#define JSON_REJECT_DUPLICATES   0x1

Definition at line 358 of file jansson.h.

◆ JSON_SORT_KEYS

#define JSON_SORT_KEYS   0x80

Definition at line 385 of file jansson.h.

◆ JSON_STRICT

#define JSON_STRICT   0x2

Definition at line 333 of file jansson.h.

◆ json_typeof

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

Definition at line 80 of file jansson.h.

◆ JSON_VALIDATE_ONLY

#define JSON_VALIDATE_ONLY   0x1

Definition at line 332 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 392 of file jansson.h.

◆ json_error_t

typedef struct json_error_t json_error_t

◆ json_free_t

typedef void(* json_free_t) (void *)

Definition at line 405 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 364 of file jansson.h.

◆ json_malloc_t

typedef void *(* json_malloc_t) (size_t)

Definition at line 404 of file jansson.h.

◆ json_t

typedef struct json_t json_t

Enumeration Type Documentation

◆ json_error_code

Enumerator
json_error_unknown 
json_error_out_of_memory 
json_error_stack_overflow 
json_error_cannot_open_file 
json_error_invalid_argument 
json_error_invalid_utf8 
json_error_premature_end_of_input 
json_error_end_of_input_expected 
json_error_invalid_syntax 
json_error_invalid_format 
json_error_wrong_type 
json_error_null_character 
json_error_null_value 
json_error_null_byte_in_key 
json_error_duplicate_key 
json_error_numeric_overflow 
json_error_item_not_found 
json_error_index_out_of_range 

Definition at line 160 of file jansson.h.

160 {
179};
@ json_error_null_byte_in_key
Definition jansson.h:174
@ json_error_null_value
Definition jansson.h:173
@ json_error_end_of_input_expected
Definition jansson.h:168
@ json_error_index_out_of_range
Definition jansson.h:178
@ json_error_invalid_format
Definition jansson.h:170
@ json_error_numeric_overflow
Definition jansson.h:176
@ json_error_unknown
Definition jansson.h:161
@ json_error_stack_overflow
Definition jansson.h:163
@ json_error_duplicate_key
Definition jansson.h:175
@ json_error_item_not_found
Definition jansson.h:177
@ json_error_wrong_type
Definition jansson.h:171
@ json_error_invalid_utf8
Definition jansson.h:166
@ json_error_premature_end_of_input
Definition jansson.h:167
@ json_error_invalid_syntax
Definition jansson.h:169
@ json_error_out_of_memory
Definition jansson.h:162
@ json_error_invalid_argument
Definition jansson.h:165
@ json_error_cannot_open_file
Definition jansson.h:164
@ json_error_null_character
Definition jansson.h:172

◆ 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 50 of file jansson.h.

50 {
59} json_type;
json_type
Definition jansson.h:50
@ JSON_STRING
Definition jansson.h:53
@ JSON_NULL
Definition jansson.h:58
@ JSON_TRUE
Definition jansson.h:56
@ JSON_OBJECT
Definition jansson.h:51
@ JSON_INTEGER
Definition jansson.h:54
@ JSON_ARRAY
Definition jansson.h:52
@ JSON_FALSE
Definition jansson.h:57
@ JSON_REAL
Definition jansson.h:55

Function Documentation

◆ format() [1/2]

json_t format ( printf ,
1 ,
0  )

◆ format() [2/2]

json_t format ( printf ,
1 ,
2  )

Referenced by addliteral(), and addliteral().

◆ jansson_version_cmp()

int jansson_version_cmp ( int major,
int minor,
int micro )

◆ jansson_version_str()

const char * jansson_version_str ( void )

◆ json_array()

json_t * json_array ( void )

◆ json_array_append()

static JSON_INLINE int json_array_append ( json_t * array,
json_t * value )
static

Definition at line 303 of file jansson.h.

303 {
305}
int json_array_append_new(json_t *array, json_t *value)
static JSON_INLINE json_t * json_incref(json_t *json)
Definition jansson.h:122

References json_array_append_new(), json_incref(), and value.

◆ json_array_append_new()

int json_array_append_new ( json_t * array,
json_t * value )

Referenced by json_array_append().

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

static JSON_INLINE int json_array_insert ( json_t * array,
size_t ind,
json_t * value )
static

Definition at line 307 of file jansson.h.

307 {
308 return json_array_insert_new(array, ind, json_incref(value));
309}
int json_array_insert_new(json_t *array, size_t index, json_t *value)

References json_array_insert_new(), json_incref(), and value.

◆ json_array_insert_new()

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

Referenced by json_array_insert().

◆ json_array_remove()

int json_array_remove ( json_t * array,
size_t index )

◆ json_array_set()

static JSON_INLINE int json_array_set ( json_t * array,
size_t ind,
json_t * value )
static

Definition at line 299 of file jansson.h.

299 {
300 return json_array_set_new(array, ind, json_incref(value));
301}
int json_array_set_new(json_t *array, size_t index, json_t *value)

References json_array_set_new(), json_incref(), and value.

◆ json_array_set_new()

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

Referenced by json_array_set().

◆ json_array_size()

size_t json_array_size ( const json_t * array)

◆ json_copy()

json_t * json_copy ( json_t * value)

◆ json_decref()

static JSON_INLINE void json_decref ( json_t * json)
static

Definition at line 131 of file jansson.h.

131 {
132 if (json && json->refcount != (size_t)-1 && JSON_INTERNAL_DECREF(json) == 0)
133 json_delete(json);
134}
#define JSON_INTERNAL_DECREF(json)
Definition jansson.h:112
void json_delete(json_t *json)
volatile size_t refcount
Definition jansson.h:63

References json_delete(), JSON_INTERNAL_DECREF, and json_t::refcount.

Referenced by fetch_github_user(), json_object_update_existing_new(), json_object_update_missing_new(), and json_object_update_new().

◆ json_deep_copy()

json_t * json_deep_copy ( const json_t * value)

◆ json_delete()

void json_delete ( json_t * json)

Referenced by json_decref().

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

size_t json_dumpb ( const json_t * json,
char * buffer,
size_t size,
size_t flags )

◆ json_dumpf()

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

◆ json_dumpfd()

int json_dumpfd ( const json_t * json,
int output,
size_t flags )

◆ json_dumps()

char * json_dumps ( const json_t * json,
size_t flags )

◆ json_equal()

int json_equal ( const json_t * value1,
const json_t * value2 )

◆ json_error_code()

static JSON_INLINE enum json_error_code json_error_code ( const json_error_t * e)
static

Definition at line 181 of file jansson.h.

181 {
182 return (enum json_error_code)e->text[JSON_ERROR_TEXT_LENGTH - 1];
183}
#define JSON_ERROR_TEXT_LENGTH
Definition jansson.h:149
json_error_code
Definition jansson.h:160
char text[JSON_ERROR_TEXT_LENGTH]
Definition jansson.h:157

References JSON_ERROR_TEXT_LENGTH, and json_error_t::text.

◆ json_false()

json_t * json_false ( void )

◆ json_get_alloc_funcs()

void json_get_alloc_funcs ( json_malloc_t * malloc_fn,
json_free_t * free_fn )

◆ json_incref()

static JSON_INLINE json_t * json_incref ( json_t * json)
static

Definition at line 122 of file jansson.h.

122 {
123 if (json && json->refcount != (size_t)-1)
125 return json;
126}
#define JSON_INTERNAL_INCREF(json)
Definition jansson.h:110

References JSON_INTERNAL_INCREF, and json_t::refcount.

Referenced by json_array_append(), json_array_insert(), json_array_set(), json_object_iter_set(), json_object_set(), json_object_set_nocheck(), json_object_setn(), and json_object_setn_nocheck().

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

json_t * json_loadfd ( int input,
size_t flags,
json_error_t * error )

◆ json_loads()

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

Referenced by fetch_github_user().

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

int json_object_deln ( json_t * object,
const char * key,
size_t key_len )

◆ json_object_get()

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

Referenced by fetch_github_user().

◆ json_object_getn()

json_t * json_object_getn ( const json_t * object,
const char * key,
size_t key_len )

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

size_t json_object_iter_key_len ( void * iter)

◆ json_object_iter_next()

void * json_object_iter_next ( json_t * object,
void * iter )

◆ json_object_iter_set()

static JSON_INLINE int json_object_iter_set ( json_t * object,
void * iter,
json_t * value )
static

Definition at line 267 of file jansson.h.

267 {
268 return json_object_iter_set_new(object, iter, json_incref(value));
269}
int json_object_iter_set_new(json_t *object, void *iter, json_t *value)

References json_incref(), json_object_iter_set_new(), and value.

◆ json_object_iter_set_new()

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

Referenced by json_object_iter_set().

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

static JSON_INLINE int json_object_set ( json_t * object,
const char * key,
json_t * value )
static

Definition at line 248 of file jansson.h.

248 {
249 return json_object_set_new(object, key, json_incref(value));
250}
int json_object_set_new(json_t *object, const char *key, json_t *value)

References json_incref(), json_object_set_new(), and value.

◆ json_object_set_new()

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

Referenced by json_object_set().

◆ json_object_set_new_nocheck()

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

Referenced by json_object_set_nocheck().

◆ json_object_set_nocheck()

static JSON_INLINE int json_object_set_nocheck ( json_t * object,
const char * key,
json_t * value )
static

Definition at line 257 of file jansson.h.

258 {
259 return json_object_set_new_nocheck(object, key, json_incref(value));
260}
int json_object_set_new_nocheck(json_t *object, const char *key, json_t *value)

References json_incref(), json_object_set_new_nocheck(), and value.

◆ json_object_setn()

static JSON_INLINE int json_object_setn ( json_t * object,
const char * key,
size_t key_len,
json_t * value )
static

Definition at line 252 of file jansson.h.

253 {
254 return json_object_setn_new(object, key, key_len, json_incref(value));
255}
int json_object_setn_new(json_t *object, const char *key, size_t key_len, json_t *value)

References json_incref(), json_object_setn_new(), and value.

◆ json_object_setn_new()

int json_object_setn_new ( json_t * object,
const char * key,
size_t key_len,
json_t * value )

Referenced by json_object_setn().

◆ json_object_setn_new_nocheck()

int json_object_setn_new_nocheck ( json_t * object,
const char * key,
size_t key_len,
json_t * value )

◆ json_object_setn_nocheck()

static JSON_INLINE int json_object_setn_nocheck ( json_t * object,
const char * key,
size_t key_len,
json_t * value )
static

Definition at line 262 of file jansson.h.

263 {
264 return json_object_setn_new_nocheck(object, key, key_len, json_incref(value));
265}
int json_object_setn_new_nocheck(json_t *object, const char *key, size_t key_len, json_t *value)

References json_incref(), json_object_setn_new_nocheck(), and 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 )

Referenced by json_object_update_new().

◆ json_object_update_existing()

int json_object_update_existing ( json_t * object,
json_t * other )

◆ json_object_update_existing_new()

static JSON_INLINE int json_object_update_existing_new ( json_t * object,
json_t * other )
static

Definition at line 277 of file jansson.h.

277 {
278 int ret = json_object_update_existing(object, other);
279 json_decref(other);
280 return ret;
281}
int json_object_update_existing(json_t *object, json_t *other)
static JSON_INLINE void json_decref(json_t *json)
Definition jansson.h:131

References json_decref(), and json_object_update_existing().

◆ json_object_update_missing()

int json_object_update_missing ( json_t * object,
json_t * other )

◆ json_object_update_missing_new()

static JSON_INLINE int json_object_update_missing_new ( json_t * object,
json_t * other )
static

Definition at line 283 of file jansson.h.

283 {
284 int ret = json_object_update_missing(object, other);
285 json_decref(other);
286 return ret;
287}
int json_object_update_missing(json_t *object, json_t *other)

References json_decref(), and json_object_update_missing().

◆ json_object_update_new()

static JSON_INLINE int json_object_update_new ( json_t * object,
json_t * other )
static

Definition at line 271 of file jansson.h.

271 {
272 int ret = json_object_update(object, other);
273 json_decref(other);
274 return ret;
275}
int json_object_update(json_t *object, json_t *other)

References json_decref(), and json_object_update().

◆ json_object_update_recursive()

int json_object_update_recursive ( 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_sprintf()

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

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

Referenced by fetch_github_user().

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

json_t * json_vsprintf ( 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 )