【发布时间】:2020-09-04 18:59:57
【问题描述】:
我在 Scala 中有一个枚举
object Status extends Enumeration {
type Status = Value
val Success = Value
val Error = Value
}
这是在下面使用 -
case class Response(
status: Status,
errorMessage: String
)
我想将Response 存储在一个文件中。所以,我正在使用 Jackson 对象映射器 (com.fasterxml.jackson.databind.ObjectMapper ) 对其进行序列化。
writeOutputToFile(filePath: Path , objectMapper.writeValueAsString(response))
但是,对象映射器将空 json 写入文件。我知道对象映射器需要一个 getter 方法来序列化。这就是失败的原因吗?我需要自定义对象映射器吗?
【问题讨论】:
-
stackoverflow.com/questions/28270621/… 回答你的问题了吗?
-
只是其中的一部分。我主要关心的是枚举类。 ObjectMapper 将其打印为
{"status":{"scala$Enumeration$Val$$i":0},"message":null} -
Jackson 是 Java 库,它不了解 Scala 是如何定义事物的。这就是为什么 wrapper 可能会有所帮助。虽然简单的方法是包装器并且没有-
Enumeration -
您可能更喜欢带有案例对象的密封特征
标签: scala jackson objectmapper