--- libelwix/inc/elwix/ajson.h 2025/08/21 15:40:07 1.8.2.1 +++ libelwix/inc/elwix/ajson.h 2025/08/25 10:05:52 1.9.2.1 @@ -3,7 +3,7 @@ * by Michael Pounov * * $Author: misho $ -* $Id: ajson.h,v 1.8.2.1 2025/08/21 15:40:07 misho Exp $ +* $Id: ajson.h,v 1.9.2.1 2025/08/25 10:05:52 misho Exp $ * ************************************************************************** The ELWIX and AITNET software is distributed under the following @@ -166,15 +166,30 @@ double json_token2dbl(const char *jstr, jtok_t * __res */ int json_token2bool(const char *jstr, jtok_t * __restrict tok); /* - * json_token2array() - Convert token to string array + * json_token2vars() - Convert token to string variable array * * @jstr = JSON string * @tok = Token for convert * return: =NULL error or !=NULL allocated array with string variables, * after use should be ait_freeVars() */ +array_t *json_token2vars(const char *jstr, jtok_t * __restrict tok); +/* + * json_token2array() - Convert token to string array + * + * @jstr = JSON string + * @tok = Token for convert + * return: =NULL error or !=NULL allocated array with strings, + * after use should be json_freearray() + */ array_t *json_token2array(const char *jstr, jtok_t * __restrict tok); +#define json_freearray(x) do { \ + assert((x)); \ + array_Free(*(x)); \ + array_Destroy((x)); \ + } while(0) + /* * json_findbykey() - Find token data by key * @@ -223,9 +238,10 @@ long json_objscope(const char *key, const char *jstr, * json_validate() - Validate JSON * * @jstr = JSON string + * @started = if started != NULL then here will return start position of found JSON * return: -1 error or >=0 where valid JSON ends */ -int json_validate(const char *jstr); +int json_validate(const char *jstr, int *started); /*