--- libelwix/inc/elwix/ajson.h 2025/08/21 15:40:07 1.8.2.1 +++ libelwix/inc/elwix/ajson.h 2026/03/31 15:29:12 1.11 @@ -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.11 2026/03/31 15:29:12 misho Exp $ * ************************************************************************** The ELWIX and AITNET software is distributed under the following @@ -12,7 +12,7 @@ terms: All of the documentation and software included in the ELWIX and AITNET Releases is copyrighted by ELWIX - Sofia/Bulgaria -Copyright 2004 - 2025 +Copyright 2004 - 2026 by Michael Pounov . All rights reserved. Redistribution and use in source and binary forms, with or without @@ -132,6 +132,14 @@ unsigned int json_parse(json_t * __restrict json, cons */ ait_val_t *json_token2val(const char *jstr, jtok_t * __restrict tok); /* + * json_token2rstr() - Return token to raw string + * + * @jstr = JSON string + * @tok = Token for convert + * @return =NULL error or !=NULL allocated str, after use should be json_freestr()|e_free() + */ +char *json_token2rstr(const char *jstr, jtok_t * __restrict tok); +/* * json_token2str() - Return token to string * * @jstr = JSON string @@ -166,15 +174,32 @@ 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); +/* + * json_freearray() - Free & destroy allocated array from json_token2array function + * + * @parr = Array + * return -1 error or 0 ok + */ +int json_freearray(array_t **parr); + /* * json_findbykey() - Find token data by key * @@ -223,9 +248,18 @@ 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); +/* + * json_marshaling() - Prepare JSON to one continues line + * + * @jstr = JSON string + * @space = if it is 0 then spaces will be removed + * return NULL error or !=NULL ready JSON for proceeding + */ +char *json_marshaling(char * __restrict jstr, int space); /*