Diff for /libelwix/inc/elwix/ajson.h between versions 1.5 and 1.10

version 1.5, 2018/04/19 00:00:36 version 1.10, 2025/08/25 13:00:37
Line 12  terms: Line 12  terms:
 All of the documentation and software included in the ELWIX and AITNET  All of the documentation and software included in the ELWIX and AITNET
 Releases is copyrighted by ELWIX - Sofia/Bulgaria <info@elwix.org>  Releases is copyrighted by ELWIX - Sofia/Bulgaria <info@elwix.org>
   
Copyright 2004 - 2018Copyright 2004 - 2025
         by Michael Pounov <misho@elwix.org>.  All rights reserved.          by Michael Pounov <misho@elwix.org>.  All rights reserved.
   
 Redistribution and use in source and binary forms, with or without  Redistribution and use in source and binary forms, with or without
Line 89  typedef struct _tagToken { Line 89  typedef struct _tagToken {
 #define json_tokstrcpy(d, j, x) { strncpy((d), json_tokstr((j), (x)), json_toklen(x)); \  #define json_tokstrcpy(d, j, x) { strncpy((d), json_tokstr((j), (x)), json_toklen(x)); \
                                         (d)[json_toklen(x)] = 0; }                                           (d)[json_toklen(x)] = 0; } 
   
   #ifdef __cplusplus
   extern "C" {
   #endif
   
 /*  /*
  * json_init() - Initialize JSON handler   * json_init() - Initialize JSON handler
Line 136  ait_val_t *json_token2val(const char *jstr, jtok_t * _ Line 139  ait_val_t *json_token2val(const char *jstr, jtok_t * _
  * @return =NULL error or !=NULL allocated str, after use should be json_freestr()|e_free()   * @return =NULL error or !=NULL allocated str, after use should be json_freestr()|e_free()
  */   */
 char *json_token2str(const char *jstr, jtok_t * __restrict tok);  char *json_token2str(const char *jstr, jtok_t * __restrict tok);
   #define json_token2obj          json_token2str
 #define json_freestr(x)         e_free((x))  #define json_freestr(x)         e_free((x))
 /*  /*
  * json_token2num() - Return token to numeric   * json_token2num() - Return token to numeric
Line 154  long json_token2num(const char *jstr, jtok_t * __restr Line 158  long json_token2num(const char *jstr, jtok_t * __restr
  */   */
 double json_token2dbl(const char *jstr, jtok_t * __restrict tok);  double json_token2dbl(const char *jstr, jtok_t * __restrict tok);
 /*  /*
 * json_token2array() - Convert token to string array * json_token2bool() - Return token to bool int
  *   *
  * @jstr = JSON string   * @jstr = JSON string
  * @tok = Token for convert   * @tok = Token for convert
    * @return 0 for FALSE and !=0 for TRUE
    */
   int json_token2bool(const char *jstr, jtok_t * __restrict tok);
   /*
    * 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,    * return: =NULL error or !=NULL allocated array with string variables, 
  *              after use should be ait_freeVars()   *              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);  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   * json_findbykey() - Find token data by key
  *   *
Line 176  array_t *json_token2array(const char *jstr, jtok_t * _ Line 205  array_t *json_token2array(const char *jstr, jtok_t * _
 jtok_t *json_findbykey(const char *jstr, const char *key,   jtok_t *json_findbykey(const char *jstr, const char *key, 
                 jtype_t type, jtok_t * __restrict toks, int toksnum);                  jtype_t type, jtok_t * __restrict toks, int toksnum);
 /*  /*
    * json_findbykeyatscope() - Find token data by key at particular scope
    *
    * @scope = Search at object scope, =0 main object scope
    * @jstr = JSON string
    * @key = Search key
    * @type = Search key for particular token type, if is J_UNDEF this mean any type
    * @toks = Parsed tokens
    * @toksnum = Number of parsed tokens
    * return: =NULL error or !=NULL data token found 
    */
   jtok_t *json_findbykeyatscope(long scope, const char *jstr, const char *key, 
                   jtype_t type, jtok_t * __restrict toks, int toksnum);
   /*
  * json_findbypos() - Find token by position on JSON string   * json_findbypos() - Find token by position on JSON string
  *   *
  * @pos = Offset from begin of JSON string   * @pos = Offset from begin of JSON string
Line 184  jtok_t *json_findbykey(const char *jstr, const char *k Line 226  jtok_t *json_findbykey(const char *jstr, const char *k
  * return: =NULL error or !=NULL token found    * return: =NULL error or !=NULL token found 
  */   */
 jtok_t *json_findbypos(unsigned long pos, jtok_t * __restrict toks, int toksnum);  jtok_t *json_findbypos(unsigned long pos, jtok_t * __restrict toks, int toksnum);
   /*
    * json_objscope() - Find object scope of key
    *
    * @key = Key of object, if it is =NULL, then return 0 (default scope)
    * @jstr = JSON string
    * @toks = JSON tokens
    * @toksnum = Number of tokens
    * return: -1 on error or >=0 scope of object
    */
   long json_objscope(const char *key, const char *jstr, jtok_t * __restrict toks, int toksnum);
   /*
    * 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 *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);
   
   
 /*  /*
Line 306  int json_add_value(char * __restrict jstr, int jlen, i Line 374  int json_add_value(char * __restrict jstr, int jlen, i
 int json_add_pair(char * __restrict jstr, int jlen, int wspace,   int json_add_pair(char * __restrict jstr, int jlen, int wspace, 
                 const char *key, const char *val);                  const char *key, const char *val);
 /*  /*
    * json_add_pair2() - Adds key/value pair with formated args
    *
    * @jstr = JSON string
    * @jlen = JSON string length
    * @wspace = whitespace include
    * @key = Key string
    * @fmt = Format string for values
    * return: -1 error or !=-1 actual JSON string length
    */
   int json_add_pair2(char * __restrict jstr, int jlen, int wspace, 
                   const char *key, const char *fmt, ...);
   /*
  * json_add_array() - Adds array   * json_add_array() - Adds array
  *   *
  * @jstr = JSON string   * @jstr = JSON string
Line 317  int json_add_pair(char * __restrict jstr, int jlen, in Line 397  int json_add_pair(char * __restrict jstr, int jlen, in
 int json_add_array(char * __restrict jstr, int jlen, int wspace,   int json_add_array(char * __restrict jstr, int jlen, int wspace, 
                 array_t * __restrict arr);                  array_t * __restrict arr);
   
   #ifdef __cplusplus
   }
   #endif
   
 #endif  #endif

Removed from v.1.5  
changed lines
  Added in v.1.10


FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>