如何覆盖openge中的toString方法?

问题描述

我有一个可序列化的类,我想在序列化为 JSON 时提供我自己的 toString。


    DEFINE PUBLIC PROPERTY address1 AS CHaraCTER NO-UNDO 
    GET.
    SET.
    
    METHOD PUBLIC OVERRIDE CHaraCTER toString(  ):
        
        DEFINE VARIABLE result AS CHaraCTER NO-UNDO.

        RETURN address1 + address2 + city + country.

    END METHOD.

END CLASS. ```

I am also assigning the class to a temptable and using the write-json method of a dataset to output but I get the standard toString representation .."myClass": {
                "prods:objId": 1,"myClass": {
                    "address1": "xxxxx"
                }
            } 

can I somehow override the toString being used ?

解决方法

JsonSerializer 不使用 ToString() ,也不会让您控制生成的格式。 Serialize method 描述写入的数据。如果您想将此能力添加到 ABL 中,您可以在 https://openedge.ideas.aha.io/ideas 处添加一个“想法”; OE 产品管理人员定期审查这些想法。

如果你今天想控制所写的内容,你需要自己动手。例如,OE 具有 IJsonSerializer 接口,该接口允许类型声明它们可以使用 JsonSerializer 类进行序列化。