jshn: add json_get_keys()
[project/libubox.git] / sh / jshn.sh
index 1c35711..110892c 100644 (file)
@@ -182,6 +182,10 @@ json_add_boolean() {
        _json_add_generic boolean "$1" "$2"
 }
 
+json_add_double() {
+       _json_add_generic double "$1" "$2"
+}
+
 # functions read access to json variables
 
 json_load() {
@@ -193,12 +197,21 @@ json_dump() {
 }
 
 json_get_type() {
-       local dest="$1"
-       local cur
+       local __dest="$1"
+       local __cur
 
-       _json_get_var cur JSON_CUR
-       local var="${JSON_PREFIX}TYPE_${cur}_${2//[^a-zA-Z0-9_]/_}"
-       eval "export -- \"$dest=\${$var}\"; [ -n \"\${$var+x}\" ]"
+       _json_get_var __cur JSON_CUR
+       local __var="${JSON_PREFIX}TYPE_${__cur}_${2//[^a-zA-Z0-9_]/_}"
+       eval "export -- \"$__dest=\${$__var}\"; [ -n \"\${$__var+x}\" ]"
+}
+
+json_get_keys() {
+       local __dest="$1"
+       local _tbl_cur
+
+       json_get_var _tbl_cur "$2"
+       local __var="${JSON_PREFIX}KEYS_${_tbl_cur}"
+       eval "export -- \"$__dest=\${$__var}\"; [ -n \"\${$__var+x}\" ]"
 }
 
 json_get_var() {