jshn: fix format string for int64 type Signed-off-by: Felix Fietkau <nbd@nbd.name>
jshn: add functionality to read big JSON The existing read functionality feeds the complete JSON to jshn as a cmdline argument, leading to `-ash: jshn: Argument list too long` errors for JSONs bigger than ca. 100KB. This commit adds the ability to read the JSON directly from a file if wanted, removing this shell-imposed size limit. Tested on x86-64 and ar71xx. An mmap()-based solution was also evaluated, but found to make no performance difference on either platform. Signed-off-by: Christian Beier <dontmind@freeshell.org>
jshn: properly support JSON "null" type Instead of abort parsing, properly deal with "null" values by implementing support for reading and formatting such values. Signed-off-by: Jo-Philipp Wich <jo@mein.io>
jshn: read and write 64-bit integers This allows for reading in and writing out bigger JSON Numbers. Following test script (that fails to print correct values _without_ this commit) verifies the functionality (tested on x86-64 as well as on ar71xx): ---snip--- # assumes you built jshn and sourced jshn.sh echo testing reading-in JSON SHELL_BIGNUM=12147483647 json_init json_load "{ \"bignum\": $SHELL_BIGNUM }" json_get_var BIGNUM bignum echo jshn bignum: $BIGNUM echo shll bignum: $SHELL_BIGNUM echo testing writing-out JSON json_init json_add_int bigint $SHELL_BIGNUM json_dump --snap--- Signed-off-by: Christian Beier <dontmind@freeshell.org>
Fix various memory management issues Consistently handle allocation failures. Some functions are changed to return bool or int instead of void to allow returning an error. Also fix a buffer size miscalculation in lua/uloop and use _exit() instead of exit() on errors after forking. Signed-off-by: Matthias Schiffer <mschiffer@universe-factory.net>
jshn: use an avl tree for env variables to speed up processing of bigger json files Signed-off-by: Felix Fietkau <nbd@openwrt.org>
jshn: add error handling and fix memory leak in jshn_format(). Though currently jshn is more a one-shot data transformation tool and won't leak much memory in its lifetime, people may use it as example code, so do it right. Signed-off-by: Yousong Zhou <yszhou4tech@gmail.com>
jshn: shorten JSON_VAR to J_V Signed-off-by: Felix Fietkau <nbd@openwrt.org>
jshn: shorten variable names to speed up processing Signed-off-by: Felix Fietkau <nbd@openwrt.org>
avoid using the deprecated is_error() function from json-c Signed-off-by: Felix Fietkau <nbd@openwrt.org>
jshn: pretty print indented output with jshn -i -w Signed-off-by: John Crispin <blogic@openwrt.org>
jshn: add support for the double datatype Signed-off-by: Felix Fietkau <nbd@openwrt.org>
add pkgconfig support for json-c this includes a fallback for legacy support
jshn: add copyright info Signed-off-by: Felix Fietkau <nbd@openwrt.org>
jshn: add support for namespaces Can be used to fix variable namespace clashes in library code using jshn Signed-off-by: Felix Fietkau <nbd@openwrt.org>
jshn: support using characters in elements that do not conform to shell variable restrictions
change the include path for list.h in jshn.c
jshn: add an option for printing the json data without a terminating newline
add jshn