X-Git-Url: http://git.openwrt.org/?a=blobdiff_plain;f=sh%2Fjshn.sh;h=c97369230a93d144fbba06b5a8fa79c9acc41238;hb=ea56013409d5823001b47a9bba6f74055a6d76a5;hp=7b0155d0ce4c0ec5a4cd8438a1ecf7441f2c4868;hpb=d2223ef9da7172a84d1508733dc58840e1381e3c;p=project%2Flibubox.git diff --git a/sh/jshn.sh b/sh/jshn.sh index 7b0155d..c973692 100644 --- a/sh/jshn.sh +++ b/sh/jshn.sh @@ -174,6 +174,29 @@ json_add_null() { _json_add_generic null "$1" "" "$cur" } +json_add_fields() { + while [ "$#" -gt 0 ]; do + local field="$1" + shift + + local name="${field%%=*}" + local val="${field#*=}" + [ "$name" != "$val" ] || val="" + + local type="${name#*:}" + [ "$type" != "$name" ] || type=string + name="${name%%:*}" + + case "$type" in + string|int|boolean|double) + local cur + _json_get_var cur JSON_CUR + _json_add_generic "$type" "$name" "$val" "$cur" + ;; + esac + done +} + # functions read access to json variables json_load() {