首页 > 解决方案 > 如何覆盖opengege中的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 ?

标签: openedgeprogress-4gl

解决方案


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

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


推荐阅读