Otro ejemplo sobre cómo usar extensiones personalizadas de comandos, en este caso ZZJSON para formatear JSON.
IRIS dispone de la clase %JSON.Formatter. Pero a veces para depurar resulta un poco largo de usar.
Si por ejemplo tenemos este JSON:
ZWRITE js1
js1="{""Name"":""Cunningham,John C."",""SSN"":""294-11-9150"",""DOB"":""1933-01-08"",""Home"":{""Street"":""4249 Ash Street"",""City"":""Tampa"",""State"":""MD"",""Zip"":""30176""},""FavoriteColors"":\[""White"",""Red"",""Green""]}"
Y lo formateamos con %JSON.Formatter:
set formatter=##class(%JSON.Formatter).%New()
do formatter.Format(js1)
{
"Name":"Cunningham,John C.",
"SSN":"294-11-9150",
"DOB":"1933-01-08",
"Home":{
"Street":"4249 Ash Street",
"City":"Tampa",
"State":"MD",
"Zip":"30176"
},
"FavoriteColors":\[
"White",
"Red",
"Green"
]
}
No parece muy complicado.
Lo haces una vez, lo haces dos veces..., y después de cinco veces, tus dedos ya se han cansado.
Así que podemos hacernos un atajo para ahorrar tiempo y evitar errores.
El adjunto ZZJSON.inc se incluirá en tu %ZLANGC00.mac (ver el link al Open Exchange)
ZZJSON js1 ; does the Output to Terminal / Device
set st=##class(%Stream.GlobalCharacter).%New()
ZZJSON js1:st ; write result to Stream
ZZJSON js1:"BOBBY" ; writes it to local variable BOBBY