Escrito por

Sales Engineer at InterSystems Corporation
Artículo Alberto Fuentes · dic 22, 2020 1m read

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