boomerang::handler proc as_json (protected)

 boomerang::handler[i] as_json dict

Defined in packages/xotcl-core/tcl/01-debug-procs.tcl

Parameters:
dict (required)

Testcases:
No testcase defined.
Source code:
set native [expr {[info commands ::ns_json] ne ""}]
if {!$native} {
    package require json::write
}
set result {}
dict for {k v} $dict {
    #
    # Drop fields unsuitable for Elasticsearch, then map names
    # containing dots. Preserve the numeric-field whitelist.
    #
    if {[info exists :json_drop($k)]} {
        continue
    }
    if {[info exists :json_map($k)]} {
        set k [set :json_map($k)]
    }
    if {$native} {
        if {[info exists :json_unquoted($k)]} {
            lappend result $k number $v
        } else {
            lappend result $k string $v
        }
    } else {
        if {[info exists :json_unquoted($k)]} {
            set value $v
        } else {
            set value [::json::write string $v]
        }
        lappend result "[::json::write string $k]:$value"
    }
}
if {$native} {
    return [ns_json value -type object $result]
}
return "{[join $result ,]}"
XQL Not present:
Generic, PostgreSQL, Oracle
[ hide source ] | [ make this the default ]
Show another procedure: