projects
/
project
/
libubox.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
fill padding bytes when setting raw attribute length
[project/libubox.git]
/
sh
/
jshn.sh
diff --git
a/sh/jshn.sh
b/sh/jshn.sh
index
7389f8c
..
d325460
100644
(file)
--- a/
sh/jshn.sh
+++ b/
sh/jshn.sh
@@
-19,11
+19,15
@@
json_add_generic() {
local val="$3"
local cur="${4:-$JSON_CUR}"
local val="$3"
local cur="${4:-$JSON_CUR}"
- [ "${cur%%[0-9]*}" = "JSON_ARRAY" ] && {
+ if [ "${cur%%[0-9]*}" = "JSON_ARRAY" ]; then
eval "local aseq=\"\${SEQ_$cur}\""
var=$(( ${aseq:-0} + 1 ))
export -- "SEQ_$cur=$var"
eval "local aseq=\"\${SEQ_$cur}\""
var=$(( ${aseq:-0} + 1 ))
export -- "SEQ_$cur=$var"
- }
+ else
+ local name="$(echo -n "$var" | tr -C '[a-zA-Z_]' _)"
+ [[ "$name" == "$var" ]] || export -- "NAME_${cur}_${name}=$var"
+ var="$name"
+ fi
export -- "${cur}_$var=$val"
export -- "TYPE_${cur}_$var=$type"
export -- "${cur}_$var=$val"
export -- "TYPE_${cur}_$var=$type"
@@
-96,7
+100,7
@@
json_get_type() {
json_get_var() {
local dest="$1"
json_get_var() {
local dest="$1"
- local var="$
2
"
+ local var="$
(echo -n "$2" | tr -C '[a-zA-Z_]' _)
"
eval "export -- \"$dest=\${${JSON_CUR}_$var}\""
}
eval "export -- \"$dest=\${${JSON_CUR}_$var}\""
}