X-Git-Url: http://www.project-moonshot.org/gitweb/?a=blobdiff_plain;f=src%2Fjansson.h;h=24b494929a2a4602175aef2a63f707a4ce5037e0;hb=f18ef5144a77ebdbe7285711884b217b86e2c3b6;hp=607dfb5c12bcab351f2b32e27e7d2ff219d7f8ad;hpb=e7a5dc58e630aa079f402b46a65d218e656dd489;p=jansson.git diff --git a/src/jansson.h b/src/jansson.h index 607dfb5..24b4949 100644 --- a/src/jansson.h +++ b/src/jansson.h @@ -1,5 +1,5 @@ /* - * Copyright (c) 2009 Petri Lehtinen + * Copyright (c) 2009, 2010 Petri Lehtinen * * Jansson is free software; you can redistribute it and/or modify * it under the terms of the MIT license. See LICENSE for details. @@ -49,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); @@ -77,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) @@ -91,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); @@ -123,9 +139,21 @@ 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(const json_t *string, const char *value); -int json_integer_set(const json_t *integer, int value); -int json_real_set(const json_t *real, double value); +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 */ @@ -145,6 +173,7 @@ json_t *json_load_file(const char *path, json_error_t *error); #define JSON_COMPACT 0x100 #define JSON_ENSURE_ASCII 0x200 #define JSON_SORT_KEYS 0x400 +#define JSON_PRESERVE_ORDER 0x800 char *json_dumps(const json_t *json, unsigned long flags); int json_dumpf(const json_t *json, FILE *output, unsigned long flags);