Artículo
Alberto Fuentes · Dic 22, 2020 Lectura de 1 min

Formateo rápido de JSON para IRIS

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
00
2 0 0 20