#include <yajl/yajl_common.h>
Go to the source code of this file.
Data Structures | |
struct | yajl_callbacks |
struct | yajl_parser_config |
Typedefs | |
typedef struct yajl_handle_t * | yajl_handle |
Enumerations | |
enum | yajl_status { yajl_status_ok, yajl_status_client_canceled, yajl_status_insufficient_data, yajl_status_error } |
Functions | |
const char * | yajl_status_to_string (yajl_status code) |
yajl_handle | yajl_alloc (const yajl_callbacks *callbacks, const yajl_parser_config *config, const yajl_alloc_funcs *allocFuncs, void *ctx) |
void | yajl_free (yajl_handle handle) |
yajl_status | yajl_parse (yajl_handle hand, const unsigned char *jsonText, unsigned int jsonTextLength) |
yajl_status | yajl_parse_complete (yajl_handle hand) |
unsigned char * | yajl_get_error (yajl_handle hand, int verbose, const unsigned char *jsonText, unsigned int jsonTextLength) |
unsigned int | yajl_get_bytes_consumed (yajl_handle hand) |
void | yajl_free_error (yajl_handle hand, unsigned char *str) |
Interface to YAJL's JSON parsing facilities.
typedef struct yajl_handle_t* yajl_handle |
an opaque handle to a parser
enum yajl_status |
error codes returned from this interface
yajl_handle yajl_alloc | ( | const yajl_callbacks * | callbacks, | |
const yajl_parser_config * | config, | |||
const yajl_alloc_funcs * | allocFuncs, | |||
void * | ctx | |||
) |
allocate a parser handle
callbacks | a yajl callbacks structure specifying the functions to call when different JSON entities are encountered in the input text. May be NULL, which is only useful for validation. | |
config | configuration parameters for the parse. | |
ctx | a context pointer that will be passed to callbacks. |
void yajl_free | ( | yajl_handle | handle | ) |
free a parser handle
void yajl_free_error | ( | yajl_handle | hand, | |
unsigned char * | str | |||
) |
free an error returned from yajl_get_error
unsigned int yajl_get_bytes_consumed | ( | yajl_handle | hand | ) |
get the amount of data consumed from the last chunk passed to YAJL.
In the case of a successful parse this can help you understand if the entire buffer was consumed (which will allow you to handle "junk at end of input".
In the event an error is encountered during parsing, this function affords the client a way to get the offset into the most recent chunk where the error occured. 0 will be returned if no error was encountered.
unsigned char* yajl_get_error | ( | yajl_handle | hand, | |
int | verbose, | |||
const unsigned char * | jsonText, | |||
unsigned int | jsonTextLength | |||
) |
get an error string describing the state of the parse.
If verbose is non-zero, the message will include the JSON text where the error occured, along with an arrow pointing to the specific char.
yajl_status yajl_parse | ( | yajl_handle | hand, | |
const unsigned char * | jsonText, | |||
unsigned int | jsonTextLength | |||
) |
Parse some json!
hand | - a handle to the json parser allocated with yajl_alloc | |
jsonText | - a pointer to the UTF8 json text to be parsed | |
jsonTextLength | - the length, in bytes, of input text |
yajl_status yajl_parse_complete | ( | yajl_handle | hand | ) |
Parse any remaining buffered json. Since yajl is a stream-based parser, without an explicit end of input, yajl sometimes can't decide if content at the end of the stream is valid or not. For example, if "1" has been fed in, yajl can't know whether another digit is next or some character that would terminate the integer token.
hand | - a handle to the json parser allocated with yajl_alloc |
const char* yajl_status_to_string | ( | yajl_status | code | ) |
attain a human readable, english, string for an error