Class your.class
{
Property Colors As list Of %String;
ClassMethod toJson(list) As %String [ SqlProc ]
{
s json=""
f i=1:1:$ll(list) {
s:i>1 json=json_"," s item=$lg(list,i)
if '$ld(list,i) { s json=json_"null" }
elseif item="" { s json=json_"""""" }
elseif $lv(item) { s json=json_..toJson(item) }
elseif $num(item,".")=item { s json=json_$fn(item,"N") }
else {
f c="\","/","""",$c(8),$c(9),$c(10),$c(12),$c(13) s item=$replace(item,c,"\"_$tr(c,$c(8,9,10,12,13),"btnfr"))
f q:'$locate(item,"[:cntrl:]",0,j,v) s $e(item,j-1)="\u"_$e($zh($a(v)+65536),2,5)
s json=json_""""_item_""""
}
}
q "["_json_"]"
}
}select your.class_toJson(Colors) from your.class
gives you the expected result . If you prefer a direct use of globals, then use
write ##class(your.class).toJson($lg(^your.global(theOID),theSlotNumber))
- Log in to post comments