OK, this is the correct(ed) version:
ClassMethod RemoveNull(obj)
{
set iter=obj.%GetIterator(), rem=[]
while iter.%GetNext(.key,.val) {
if $isobject(val) { do ..RemoveNull(val) } elseif obj.%GetTypeOf(key)="null" { do rem.%Push({"o":(obj), "k":(key)}) }
}
for i=rem.%Size()-1:-1:0 set tmp=rem.%Get(i) do tmp.o.%Remove(tmp.k)
}- Log in to post comments