diff options
author | Christian Hesse <mail@eworm.de> | 2023-10-10 12:54:59 +0200 |
---|---|---|
committer | Christian Hesse <mail@eworm.de> | 2023-10-16 11:51:04 +0200 |
commit | 7df4f9e78c9213dfb1bb9e423e1d55d2bc01dd6d (patch) | |
tree | 9a5707dc711ef77044f0170830fe4f23f673efdb | |
parent | bb899b1fb0b20d481fafc7d67193ab003c33a652 (diff) |
global-functions: $ParseJson: handle outher curly brackets
-rw-r--r-- | global-functions.rsc | 7 |
1 files changed, 6 insertions, 1 deletions
diff --git a/global-functions.rsc b/global-functions.rsc index 12d510b..df374b8 100644 --- a/global-functions.rsc +++ b/global-functions.rsc @@ -698,11 +698,16 @@ # parse JSON into array # Warning: This is not a complete parser! :set ParseJson do={ - :local Input [ :toarray $1 ]; + :local Input [ :tostr $1 ]; :local Return ({}); :local Skip 0; + :if ([ :pick $Input 0 ] = "{") do={ + :set Input [ :pick $Input 1 ([ :len $Input ] - 1) ]; + } + :set Input [ :toarray $Input ]; + :for I from=0 to=[ :len $Input ] do={ :if ($Skip > 0 || $Input->$I = "\n" || $Input->$I = "\r\n") do={ :if ($Skip > 0) do={ |