X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=blobdiff_plain;f=json.tcl;h=f9c9e6833e82738c3a860d471767cfbacc0a1cc4;hb=9c468fcd3e600a1cc8a29f4dc8f2411ddaaa2b3a;hp=67c1b2e1400d2b395c0c4e4faa2667d960de3bb1;hpb=f5961f8c52877b8bc38bd289cb420b065cc81c64;p=scpubgit%2FTenDotTcl.git diff --git a/json.tcl b/json.tcl index 67c1b2e..f9c9e68 100644 --- a/json.tcl +++ b/json.tcl @@ -60,11 +60,10 @@ namespace eval ten::json { proc deparse {data} { switch -regexp [lindex $data 0] { - ^true|false|null$ { uplevel 1 return [lindex $data 0] } - ^num|str|obj|list$ {} + ^true|false|null$ { lindex $data 0 } + ^num|str|obj|list$ { eval $data } default { error [ concat "Invalid JSON type " [lindex $data 0 0] ] } } - eval $data } } @@ -131,7 +130,6 @@ namespace eval ten::json { proc parse_str {} { variable json -puts $json # like Text::Balanced except ugly (borrowed from tcvJSON's code) set reStr {(?:(?:\")(?:[^\\\"]*(?:\\.[^\\\"]*)*)(?:\"))} if {![regexp $reStr $json string]} {