X-Git-Url: http://www.project-moonshot.org/gitweb/?a=blobdiff_plain;f=src%2Fjansson.h;h=d703c7b347734e97ec242a8c61db886008ae77c9;hb=b495b9654715ca8ea2f18d7f92eff9da2ed57083;hp=675199867c85961240cc80e4bb74aa18882a4e38;hpb=1e00cd58a514a61e829e639f1e40dac94a334561;p=jansson.git diff --git a/src/jansson.h b/src/jansson.h index 6751998..d703c7b 100644 --- a/src/jansson.h +++ b/src/jansson.h @@ -9,7 +9,10 @@ #define JANSSON_H #include -#include + +#ifdef __cplusplus +extern "C" { +#endif /* types */ @@ -46,6 +49,7 @@ typedef struct { json_t *json_object(void); json_t *json_array(void); json_t *json_string(const char *value); +json_t *json_string_nocheck(const char *value); json_t *json_integer(int value); json_t *json_real(double value); json_t *json_true(void); @@ -74,13 +78,16 @@ static inline void json_decref(json_t *json) unsigned int json_object_size(const json_t *object); json_t *json_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); void *json_object_iter(json_t *object); +void *json_object_iter_at(json_t *object, const char *key); void *json_object_iter_next(json_t *object, void *iter); const char *json_object_iter_key(void *iter); json_t *json_object_iter_value(void *iter); +int json_object_iter_set_new(json_t *object, void *iter, json_t *value); static inline int json_object_set(json_t *object, const char *key, json_t *value) @@ -88,6 +95,18 @@ int json_object_set(json_t *object, const char *key, json_t *value) return json_object_set_new(object, key, json_incref(value)); } +static inline +int json_object_set_nocheck(json_t *object, const char *key, json_t *value) +{ + return json_object_set_new_nocheck(object, key, json_incref(value)); +} + +static inline +int json_object_iter_set(json_t *object, void *iter, json_t *value) +{ + return json_object_iter_set_new(object, iter, json_incref(value)); +} + unsigned int json_array_size(const json_t *array); json_t *json_array_get(const json_t *array, unsigned int index); int json_array_set_new(json_t *array, unsigned int index, json_t *value); @@ -115,11 +134,27 @@ int json_array_insert(json_t *array, unsigned int index, json_t *value) return json_array_insert_new(array, index, json_incref(value)); } -const char *json_string_value(const json_t *json); -int json_integer_value(const json_t *json); -double json_real_value(const json_t *json); +const char *json_string_value(const json_t *string); +int 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_set_nocheck(json_t *string, const char *value); +int json_integer_set(json_t *integer, int value); +int json_real_set(json_t *real, double value); + + +/* equality */ + +int json_equal(json_t *value1, json_t *value2); + + +/* copying */ + +json_t *json_copy(json_t *value); +json_t *json_deep_copy(json_t *value); + /* loading, printing */ @@ -134,10 +169,17 @@ json_t *json_loads(const char *input, json_error_t *error); json_t *json_loadf(FILE *input, json_error_t *error); json_t *json_load_file(const char *path, json_error_t *error); -#define JSON_INDENT(n) (n & 0xFF) +#define JSON_INDENT(n) (n & 0xFF) +#define JSON_COMPACT 0x100 +#define JSON_ENSURE_ASCII 0x200 +#define JSON_SORT_KEYS 0x400 char *json_dumps(const json_t *json, unsigned long flags); int json_dumpf(const json_t *json, FILE *output, unsigned long flags); int json_dump_file(const json_t *json, const char *path, unsigned long flags); +#ifdef __cplusplus +} +#endif + #endif