Inspiré par la publication de @Ashok Kumar Thangavel sur le Portail d'idées et par mon propre besoin de résoudre ce problème, j'ai imaginé une méthode simple pour effectuer des requêtes JSON plus complètes et cohérentes sans avoir à spécifier chaque champ souhaité. J'ai créé une classe qui étend la classe intégrée %JSON.Adaptor et rend ses méthodes %JSONExportToString et %JSONExportToStream accessibles via SQL grâce à quelques procédures SQLProc simples.
Class DH.JSONAdaptor Extends %JSON.Adaptor [ Abstract ]
{
ClassMethod jsonstring(id, map = "") [ SqlProc ]
{
try{
set myobj = ..%OpenId(id)
set sc = myobj.%JSONExportToString(.json,map)
if $$$ISERR(sc) $$$ThrowStatus(sc)
return json
}
catch ex{
throw ex
}
}
ClassMethod jsonstream(id, map = "") [ SqlProc ]
{
try{
set myobj = ..%OpenId(id)
set sc = myobj.%JSONExportToStream(.json,map)
if $$$ISERR(sc) $$$ThrowStatus(sc)
return json
}
catch ex{
throw ex
}
}
}

.jpg)
.png)
.png)

.png)
.png)

.jpg)


