This is Unofficial EPICS BASE Doxygen Site
yajl_callbacks Struct Reference

#include "yajl_parse.h"

Public Attributes

int(* yajl_null )(void *ctx)
 
int(* yajl_boolean )(void *ctx, int boolVal)
 
int(* yajl_integer )(void *ctx, long long integerVal)
 
int(* yajl_double )(void *ctx, double doubleVal)
 
int(* yajl_number )(void *ctx, const char *numberVal, size_t numberLen)
 
int(* yajl_string )(void *ctx, const unsigned char *stringVal, size_t stringLen)
 
int(* yajl_start_map )(void *ctx)
 
int(* yajl_map_key )(void *ctx, const unsigned char *key, size_t stringLen)
 
int(* yajl_end_map )(void *ctx)
 
int(* yajl_start_array )(void *ctx)
 
int(* yajl_end_array )(void *ctx)
 

Detailed Description

YAJL is an event driven parser. This means as json elements are parsed, you are called back to do something with the data. The functions in this table indicate the various events for which you will be called back. Each callback accepts a "context" pointer, this is a void * that is passed into the yajl_parse() function which the client code may use to pass around context.

All callbacks return an integer. If non-zero, the parse will continue. If zero, the parse will be canceled and yajl_status_client_canceled() will be returned from the parse.

Attention
A note about the handling of numbers: yajl will only convert numbers that can be represented in a double or a 64 bit (long long) int. All other numbers will be passed to the client in string form using the yajl_number() callback. Furthermore, if yajl_number() is not NULL, it will always be used to return numbers, that is yajl_integer() and yajl_double() will be ignored. If yajl_number() is NULL but one of yajl_integer() or yajl_double() are defined, parsing of a number larger than is representable in a double or 64 bit integer will result in a parse error.

Definition at line 71 of file yajl_parse.h.

Member Data Documentation

int(* yajl_callbacks::yajl_boolean) (void *ctx, int boolVal)

Definition at line 73 of file yajl_parse.h.

int(* yajl_callbacks::yajl_double) (void *ctx, double doubleVal)

Definition at line 75 of file yajl_parse.h.

int(* yajl_callbacks::yajl_end_array) (void *ctx)

Definition at line 92 of file yajl_parse.h.

int(* yajl_callbacks::yajl_end_map) (void *ctx)

Definition at line 89 of file yajl_parse.h.

int(* yajl_callbacks::yajl_integer) (void *ctx, long long integerVal)

Definition at line 74 of file yajl_parse.h.

int(* yajl_callbacks::yajl_map_key) (void *ctx, const unsigned char *key, size_t stringLen)

Definition at line 87 of file yajl_parse.h.

int(* yajl_callbacks::yajl_null) (void *ctx)

Definition at line 72 of file yajl_parse.h.

int(* yajl_callbacks::yajl_number) (void *ctx, const char *numberVal, size_t numberLen)

A callback which passes the string representation of the number back to the client. Will be used for all numbers when present

Definition at line 78 of file yajl_parse.h.

int(* yajl_callbacks::yajl_start_array) (void *ctx)

Definition at line 91 of file yajl_parse.h.

int(* yajl_callbacks::yajl_start_map) (void *ctx)

Definition at line 86 of file yajl_parse.h.

int(* yajl_callbacks::yajl_string) (void *ctx, const unsigned char *stringVal, size_t stringLen)

Strings are returned as pointers into the JSON text when, possible, as a result, they are not null padded

Definition at line 83 of file yajl_parse.h.


The documentation for this struct was generated from the following file: