enum fz_json_type {
FZ_JSON_NULL,
FZ_JSON_TRUE,
FZ_JSON_FALSE,
FZ_JSON_NUMBER,
FZ_JSON_STRING,
FZ_JSON_ARRAY,
FZ_JSON_OBJECT
}
JSON parser
struct fz_json
{
int type;
union {
double number;
const char *string;
fz_json_array *array;
fz_json_object *object;
} u;
}
struct fz_json_array
{
fz_json *value;
fz_json_array *next;
}
struct fz_json_object
{
const char *key;
fz_json *value;
fz_json_object *next;
}
fz_json *
fz_parse_json (
fz_context *ctx,
fz_pool *pool,
const char *s
)
void
fz_append_json (
fz_context *ctx,
fz_buffer *buf,
fz_json *value
)
void
fz_write_json (
fz_context *ctx,
fz_output *out,
fz_json *value
)
fz_json *
fz_json_new_null (
fz_context *ctx,
fz_pool *pool
)
fz_json *
fz_json_new_boolean (
fz_context *ctx,
fz_pool *pool,
int x
)
fz_json *
fz_json_new_number (
fz_context *ctx,
fz_pool *pool,
double number
)
fz_json *
fz_json_new_string (
fz_context *ctx,
fz_pool *pool,
const char *string
)
fz_json *
fz_json_new_array (
fz_context *ctx,
fz_pool *pool
)
fz_json *
fz_json_new_object (
fz_context *ctx,
fz_pool *pool
)
void
fz_json_array_push (
fz_context *ctx,
fz_pool *pool,
fz_json *array,
fz_json *item
)
void
fz_json_object_set (
fz_context *ctx,
fz_pool *pool,
fz_json *object,
const char *key,
fz_json *item
)
int
fz_json_is_null (
fz_context *ctx,
fz_json *json
)
int
fz_json_is_boolean (
fz_context *ctx,
fz_json *json
)
int
fz_json_is_number (
fz_context *ctx,
fz_json *json
)
int
fz_json_is_string (
fz_context *ctx,
fz_json *json
)
int
fz_json_is_array (
fz_context *ctx,
fz_json *json
)
int
fz_json_is_object (
fz_context *ctx,
fz_json *json
)
int
fz_json_to_boolean (
fz_context *ctx,
fz_json *json
)
double
fz_json_to_number (
fz_context *ctx,
fz_json *json
)
const char *
fz_json_to_string (
fz_context *ctx,
fz_json *json
)
int
fz_json_array_length (
fz_context *ctx,
fz_json *array
)
fz_json *
fz_json_array_get (
fz_context *ctx,
fz_json *array,
int ix
)
fz_json *
fz_json_object_get (
fz_context *ctx,
fz_json *object,
const char *key
)