json_object.h
Go to the documentation of this file.
1 /*
2  * $Id: json_object.h,v 1.12 2006/01/30 23:07:57 mclark Exp $
3  *
4  * Copyright (c) 2004, 2005 Metaparadigm Pte. Ltd.
5  * Michael Clark <michael@metaparadigm.com>
6  *
7  * This library is free software; you can redistribute it and/or modify
8  * it under the terms of the MIT license. See COPYING for details.
9  *
10  */
11 
12 #ifndef _json_object_h_
13 #define _json_object_h_
14 
15 #define JSON_OBJECT_DEF_HASH_ENTIRES 16
16 
17 #undef FALSE
18 #define FALSE ((boolean)0)
19 
20 #undef TRUE
21 #define TRUE ((boolean)1)
22 
23 extern const char *json_number_chars;
24 extern const char *json_hex_chars;
25 
26 /* forward structure definitions */
27 
28 typedef int boolean;
29 struct printbuf;
30 struct lh_table;
31 struct array_list;
32 struct json_object;
33 struct json_object_iter;
34 
35 /* supported object types */
36 
37 enum json_type {
45 };
46 
47 /* reference counting functions */
48 
49 
50 
51 
56 extern struct json_object* json_object_get(struct json_object *obj);
57 
62 extern void json_object_put(struct json_object *obj);
63 
64 
76 /*extern int json_object_is_type(struct json_object *obj, enum json_type type);*/
77 extern int json_object_is_type(struct json_object *obj, int type);
78 
90 extern enum json_type json_object_get_type(struct json_object *obj);
91 
92 
97 extern const char* json_object_to_json_string(struct json_object *obj);
98 
99 
100 /* object type methods */
101 
105 extern struct json_object* json_object_new_object(void);
106 
111 extern struct lh_table* json_object_get_object(struct json_object *obj);
112 
123 extern void json_object_object_add(struct json_object* obj, const char *key,
124  struct json_object *val);
125 
131 extern struct json_object* json_object_object_get(struct json_object* obj,
132  const char *key);
133 
141 extern void json_object_object_del(struct json_object* obj, const char *key);
142 
148 #if defined(__GNUC__) && !defined(__STRICT_ANSI__)
149 # define json_object_object_foreach(obj,key,val) \
150  char *key; struct json_object *val; \
151  for(struct lh_entry *entry = json_object_get_object(obj)->head; ({ if(entry) { key = (char*)entry->k; val = (struct json_object*)entry->v; } ; entry; }); entry = entry->next )
152 
153 #else /* ANSI C or MSC */
154 
155 # define json_object_object_foreach(obj,key,val) \
156  char *key; struct json_object *val; struct lh_entry *entry; \
157  for(entry = json_object_get_object(obj)->head; (entry ? (key = (char*)entry->k, val = (struct json_object*)entry->v, entry) : 0); entry = entry->next)
158 
159 #endif /* defined(__GNUC__) && !defined(__STRICT_ANSI__) */
160 
165 #define json_object_object_foreachC(obj,iter) \
166  for(iter.entry = json_object_get_object(obj)->head; (iter.entry ? (iter.key = (char*)iter.entry->k, iter.val = (struct json_object*)iter.entry->v, iter.entry) : 0); iter.entry = iter.entry->next)
167 
168 /* Array type methods */
169 
173 extern struct json_object* json_object_new_array(void);
174 
179 extern struct array_list* json_object_get_array(struct json_object *obj);
180 
185 extern int json_object_array_length(struct json_object *obj);
186 
196 extern int json_object_array_add(struct json_object *obj,
197  struct json_object *val);
198 
214 extern int json_object_array_put_idx(struct json_object *obj, int idx,
215  struct json_object *val);
216 
222 extern struct json_object* json_object_array_get_idx(struct json_object *obj,
223  int idx);
224 
225 /* boolean type methods */
226 
231 extern struct json_object* json_object_new_boolean(boolean b);
232 
244 extern boolean json_object_get_boolean(struct json_object *obj);
245 
246 
247 /* int type methods */
248 
253 extern struct json_object* json_object_new_int(int i);
254 
264 extern int json_object_get_int(struct json_object *obj);
265 
266 
267 /* double type methods */
268 
273 extern struct json_object* json_object_new_double(double d);
274 
284 extern double json_object_get_double(struct json_object *obj);
285 
286 
287 /* string type methods */
288 
296 extern struct json_object* json_object_new_string(const char *s);
297 
298 extern struct json_object* json_object_new_string_len(const char *s, int len);
299 
311 extern char* json_object_get_string(struct json_object *obj);
312 
313 extern void json_set_float_format(const char*f);
314 
315 #endif
const char * json_number_chars
Definition: json_object.c:40
struct json_object * json_object_new_array(void)
Definition: json_object.c:495
struct array_list * json_object_get_array(struct json_object *obj)
Definition: json_object.c:505
void json_object_put(struct json_object *obj)
Definition: json_object.c:144
void json_object_object_del(struct json_object *obj, const char *key)
Definition: json_object.c:282
void json_object_object_add(struct json_object *obj, const char *key, struct json_object *val)
Definition: json_object.c:270
struct json_object * json_object_new_object(void)
Definition: json_object.c:248
Definition: egsl.h:12
int boolean
Definition: json_object.h:28
struct json_object * json_object_array_get_idx(struct json_object *obj, int idx)
Definition: json_object.c:535
double json_object_get_double(struct json_object *obj)
Definition: json_object.c:395
struct json_object * json_object_new_int(int i)
Definition: json_object.c:332
int json_object_get_int(struct json_object *obj)
Definition: json_object.c:341
enum json_type json_object_get_type(struct json_object *obj)
Definition: json_object.c:190
struct json_object * json_object_new_string(const char *s)
Definition: json_object.c:432
void json_set_float_format(const char *f)
Definition: json_object.c:362
char * json_object_get_string(struct json_object *obj)
Definition: json_object.c:452
struct lh_table * json_object_get_object(struct json_object *obj)
Definition: json_object.c:259
int json_object_array_length(struct json_object *obj)
Definition: json_object.c:516
int json_object_is_type(struct json_object *obj, int type)
Definition: json_object.c:184
json_type
Definition: json_object.h:37
const char * json_object_to_json_string(struct json_object *obj)
Definition: json_object.c:199
struct json_object * json_object_new_string_len(const char *s, int len)
Definition: json_object.c:442
struct json_object * json_object_get(struct json_object *obj)
Definition: json_object.c:136
int json_object_array_add(struct json_object *obj, struct json_object *val)
Definition: json_object.c:522
struct json_object * json_object_new_double(double d)
Definition: json_object.c:386
struct json_object * json_object_object_get(struct json_object *obj, const char *key)
Definition: json_object.c:277
boolean json_object_get_boolean(struct json_object *obj)
Definition: json_object.c:306
struct json_object * json_object_new_boolean(boolean b)
Definition: json_object.c:297
const char * json_hex_chars
Definition: json_object.c:41
int json_object_array_put_idx(struct json_object *obj, int idx, struct json_object *val)
Definition: json_object.c:528


csm
Author(s): Andrea Censi
autogenerated on Tue May 11 2021 02:18:23