Como quitar de un JSON una lista vacia?
Tengo esta clase definida:
Class Services.IS.Data.Pe Extends (%RegisteredObject, %JSON.Adaptor)
{
Property codigo As %String;
Property descripcion As %String;
Property ListaP As list Of P;
ClassMethod LoadPeCap(Param1 As %String, Param2 As %String) As %JSON.Adaptor
{
Set rs = ##class(%SQL.Statement).%ExecDirect(,"SELECT PRF_c as PRF_c,PRF_des as PRF_des FROM Esquema.tabla where PRF_c ="_Param1_" or PRF_c="_Param2)
Set pts ={"pts":[]}
While rs.%Next() {
Set pec ={
"PRF_c": (rs.%Get("PRF_c")),
"PRF_des": (rs.%Get("PRF_des"))
}
set pec.codigo = rs.Get("PRF_c")
set pec.descripcion = rs.%Get("PRF_des")*/
Do pts.pts.%Push(pec)
}
Quit pts
}
Y en el JSON me aparece esto:
{
"pts": [
"{\"codigo\":\"1\",\"descripcion\":\"Publicada\",\"ListaP\":[]}"
]
}
Hay alguna manera de que la Property creada como List no aparezca si no tiene datos??
Gracias
Hola Marta,
No consigo entender exactamente lo que intentas probar.
Parece que tu clase es un %JSON.Adaptor pero luego en tu código parece que estás intentando generar un %DynamicObject sobre la marcha. No sé en qué caso encuentras el problema.
Te paso un ejemplo parecido al de tu clase y un método para probar:
Class Services.IS.Data.Pe Extends (%RegisteredObject, %JSON.Adaptor) { Property codigo As %String; Property descripcion As %String; Property ListaP As list Of %String; ClassMethod Test() { // Ejemplo. %JSONExport() set obj = ##class(Services.IS.Data.Pe).%New() set obj.codigo = "123" set obj.descripcion = "desc" write !,"obj.%JSONExport(): " do obj.%JSONExportToString(.output) write !,output // Ejemplo. %DynamicObject set pts = { "pts":[] } for i=1:1:3 { set pec = { } set pec.codigo = "cod"_i set pec.descripcion = "des"_i do pts.pts.%Push(pec) } write !!,"%Dynamic Object" write !,pts.%ToJSON() } }
Si lo pruebas, verás que en ningún caso (ni con %JSON.Adaptor ni con %DynamicObject) se genera la lista vacía que indicas:
USER>do ##class(Services.IS.Data.Pe).Test() obj.%JSONExport(): {"codigo":"123","descripcion":"desc"} %Dynamic Object {"pts":[{"codigo":"cod1","descripcion":"des1"},{"codigo":"cod2","descripcion":"des2"},{"codigo":"cod3","descripcion":"des3"}]}
Aquí puedes encontrar más información sobre JSON y cómo trabajar tanto con %JSON.Adaptor como con %DynamicObject:
https://docs.intersystems.com/irislatest/csp/docbook/DocBook.UI.Page.cls...