openedge - 如何覆盖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 ?
解决方案
JsonSerializer
不使用,ToString()
也不让您对生成的格式进行任何控制。该Serialize
方法描述了写入的数据。如果您希望将此能力添加到 ABL 中,您可以在https://openedge.ideas.aha.io/ideas添加一个“想法” ;OE 产品管理部门会定期审查这些想法。
如果你今天想控制所写的内容,你需要自己动手。例如,OE 有IJsonSerializer
接口,它允许类型声明它们可以使用JsonSerializer
类进行序列化。
推荐阅读
- javascript - 使用快速路由器正确传递参数
- ubuntu - 为 Python 3.8.0 创建 virtualenv 会返回 Path does not exist 错误
- java - Java中微服务之间通信时如何将RestTemplate转换为String
- c# - 只更改材质实例的属性?
- python - 如何在 Matplotlib 中更改轴刻度标签率
- ios - 为什么在 ZStack 中更改图像的 contentMode 时文本会扩展?
- arduino - boot_app0.bin 和 bootloader_dio_80m.bin 文件是干什么用的?(ESP32 - Arduino IDE)
- reactjs - 每当我使用任何材质 ui 图标时,我都会收到此错误。当我从我的代码中删除材料 ui 图标时,错误消失了
- python - python打开的程序未关闭的问题
- java - 它说我的导入有错误,但我不知道为什么