User bio
404 bio not found
Member since Jan 24, 2019
Posts:
Replies:
Javier Llobet · Jul 8, 2020 go to post

I don't know if i will prefer override the %JSONExportToString and %JSONExportToStream or  wrapping but that dirty trick..
 

Class test.elementList Extends (%ListOfObjects, %JSON.Adaptor)
{



/// The type (class name) of the elements stored in the collection.

Parameter ELEMENTTYPE = "test.element";



/// Returns this object as a JSON Stream
Method %JSONExportToStream(ByRef objStream As %Stream.Object, %mappingName As %String = "") As %Status
{

    #Dim objStream As %Stream.TmpCharacter = ##class(%Stream.TmpCharacter).%New()

    Do objStream.Write("[")

    For i=1:1:..Size
    {

        Do ..GetAt(i).%JSONExportToStream(.objStream, %mappingName)

        If (i<..Size)
        {

            Do objStream.Write(",")
        }
    }

    Do objStream.Write("]")

    Return $$$OK
}



/// Returns this object as a JSON string
Method %JSONExportToString(ByRef jsn As %String, %mappingName As %String = "") As %Status
{

    #Dim jsonElement As %String = ""

    Set jsn = "["

    For i=1:1:..Size
    {

        Set jsonElement = ""

        Do ..GetAt(i).%JSONExportToString(.jsonElement, %mappingName)

        Set jsn = jsn_jsonElement

        If (i<..Size)
        {
            Set jsn = jsn_","
        }
    }

    Set jsn = jsn_"]"

    Return $$$OK
}

}
Certifications & Credly badges:
Javier has no Certifications & Credly badges yet.
Followers:
Javier has no followers yet.
Following:
Javier has not followed anybody yet.