24 #ifndef parson_parson_h
25 #define parson_parson_h
39 enum json_value_type {
48 typedef int JSON_Value_Type;
54 typedef int JSON_Status;
56 typedef void * (*JSON_Malloc_Function)(size_t);
57 typedef void (*JSON_Free_Function)(
void *);
61 void json_set_allocation_functions(JSON_Malloc_Function malloc_fun, JSON_Free_Function free_fun);
64 JSON_Value * json_parse_file(
const char *filename);
68 JSON_Value * json_parse_file_with_comments(
const char *filename);
71 JSON_Value * json_parse_string(
const char *
string);
75 JSON_Value * json_parse_string_with_comments(
const char *
string);
78 size_t json_serialization_size(
const JSON_Value *value);
79 JSON_Status json_serialize_to_buffer(
const JSON_Value *value,
char *buf,
size_t buf_size_in_bytes);
80 JSON_Status json_serialize_to_file(
const JSON_Value *value,
const char *filename);
81 char * json_serialize_to_string(
const JSON_Value *value);
84 size_t json_serialization_size_pretty(
const JSON_Value *value);
85 JSON_Status json_serialize_to_buffer_pretty(
const JSON_Value *value,
char *buf,
size_t buf_size_in_bytes);
86 JSON_Status json_serialize_to_file_pretty(
const JSON_Value *value,
const char *filename);
87 char * json_serialize_to_string_pretty(
const JSON_Value *value);
89 void json_free_serialized_string(
char *
string);
110 const char * json_object_get_string (
const JSON_Object *
object,
const char *name);
113 double json_object_get_number (
const JSON_Object *
object,
const char *name);
114 int json_object_get_boolean(
const JSON_Object *
object,
const char *name);
121 const char * json_object_dotget_string (
const JSON_Object *
object,
const char *name);
124 double json_object_dotget_number (
const JSON_Object *
object,
const char *name);
125 int json_object_dotget_boolean(
const JSON_Object *
object,
const char *name);
128 size_t json_object_get_count (
const JSON_Object *
object);
129 const char * json_object_get_name (
const JSON_Object *
object,
size_t index);
135 int json_object_has_value (
const JSON_Object *
object,
const char *name);
136 int json_object_has_value_of_type(
const JSON_Object *
object,
const char *name, JSON_Value_Type type);
138 int json_object_dothas_value (
const JSON_Object *
object,
const char *name);
139 int json_object_dothas_value_of_type(
const JSON_Object *
object,
const char *name, JSON_Value_Type type);
144 JSON_Status json_object_set_string(
JSON_Object *
object,
const char *name,
const char *
string);
145 JSON_Status json_object_set_number(
JSON_Object *
object,
const char *name,
double number);
146 JSON_Status json_object_set_boolean(
JSON_Object *
object,
const char *name,
int boolean);
147 JSON_Status json_object_set_null(
JSON_Object *
object,
const char *name);
152 JSON_Status json_object_dotset_string(
JSON_Object *
object,
const char *name,
const char *
string);
153 JSON_Status json_object_dotset_number(
JSON_Object *
object,
const char *name,
double number);
154 JSON_Status json_object_dotset_boolean(
JSON_Object *
object,
const char *name,
int boolean);
155 JSON_Status json_object_dotset_null(
JSON_Object *
object,
const char *name);
158 JSON_Status json_object_remove(
JSON_Object *
object,
const char *name);
161 JSON_Status json_object_dotremove(
JSON_Object *
object,
const char *key);
164 JSON_Status json_object_clear(
JSON_Object *
object);
170 const char * json_array_get_string (
const JSON_Array *array,
size_t index);
173 double json_array_get_number (
const JSON_Array *array,
size_t index);
174 int json_array_get_boolean(
const JSON_Array *array,
size_t index);
175 size_t json_array_get_count (
const JSON_Array *array);
180 JSON_Status json_array_remove(
JSON_Array *array,
size_t i);
186 JSON_Status json_array_replace_string(
JSON_Array *array,
size_t i,
const char*
string);
187 JSON_Status json_array_replace_number(
JSON_Array *array,
size_t i,
double number);
188 JSON_Status json_array_replace_boolean(
JSON_Array *array,
size_t i,
int boolean);
189 JSON_Status json_array_replace_null(
JSON_Array *array,
size_t i);
192 JSON_Status json_array_clear(
JSON_Array *array);
197 JSON_Status json_array_append_string(
JSON_Array *array,
const char *
string);
198 JSON_Status json_array_append_number(
JSON_Array *array,
double number);
199 JSON_Status json_array_append_boolean(
JSON_Array *array,
int boolean);
200 JSON_Status json_array_append_null(
JSON_Array *array);
207 JSON_Value * json_value_init_string (
const char *
string);
208 JSON_Value * json_value_init_number (
double number);
209 JSON_Value * json_value_init_boolean(
int boolean);
214 JSON_Value_Type json_value_get_type (
const JSON_Value *value);
217 const char * json_value_get_string (
const JSON_Value *value);
218 double json_value_get_number (
const JSON_Value *value);
219 int json_value_get_boolean(
const JSON_Value *value);
223 JSON_Value_Type json_type (
const JSON_Value *value);
226 const char * json_string (
const JSON_Value *value);