|
|
| version 1.1.2.1, 2017/11/24 09:54:01 | version 1.1.2.2, 2017/11/24 10:29:15 |
|---|---|
| Line 47 SUCH DAMAGE. | Line 47 SUCH DAMAGE. |
| #define __AJSON_H | #define __AJSON_H |
| /* JSON type identifiers */ | |
| typedef enum { | |
| J_UNDEF = 0, | |
| J_OBJECT = 1, | |
| J_ARRAY = 2, | |
| J_STRING = 3, | |
| J_NUMBER = 4, | |
| J_BOOL = 5, | |
| J_NULL = 6 | |
| } jtype_t; | |
| /* JSON error numbers */ | |
| typedef enum { | |
| J_ERR_OK = 0, | |
| J_ERR_NOMEM = 1, | |
| J_ERR_INVAL = 2, | |
| J_ERR_PART = 3 | |
| } jerr_t; | |
| /* JSON error strings */ | |
| typedef const char jerrstr[] = { | |
| "No error", | |
| "Not enough tokens were provided", | |
| "Invalid character", | |
| "JSON string isn't full", | |
| NULL | |
| }; | |
| typedef struct _tagParser { | |
| unsigned long pos; | |
| unsigned long next; | |
| long parent; | |
| } json_t; | |
| typedef struct _tagToken { | |
| jtype_t tok_type; | |
| long tok_start; | |
| long tok_end; | |
| long tok_size; | |
| long tok_parent; | |
| } jtok_t; | |
| /* | |
| * json_init() - Initialize JSON handler | |
| * | |
| * @json = JSON handler, if there is NULL then dynamically will be allocated | |
| * return: =NULL error or !=NULL ready for use JSON handler. | |
| */ | |
| json_t *json_init(json_t * __restrict json); | |
| /* | |
| * json_free() - Free JSON handler | |
| * | |
| * @json = JSON handler | |
| * return: none | |
| */ | |
| void json_free(json_t **json); | |
| /* | |
| * json_parse() - Parse JSON string | |
| * | |
| * @json = JSON handler | |
| * @jstr = JSON string | |
| * @jlen = JSON string length | |
| * @jtoks = Token array | |
| * @toksnum = Token array size, return number of allocated tokens in array | |
| * return: -1 error or number of found tokens | |
| */ | |
| unsigned int json_parse(json_t * __restrict json, const char *jstr, size_t jlen, | |
| jtok_t * __restrict jtoks, unsigned int toksnum); | |
| #endif | #endif |