我有以下的用例:JSON4S反序列化不带参数的名字
每一个类,我使用SERDE JSON4S有一个字段,名为ID
。这ID
可以是任何类型T <: Stringifiable
,其中Stringifiable
要求您的ID类型被散列为一个字符串。 Stringifiables也有构造函数,它们从字符串中重建它们。
我想将任何Stringifiable
,例如ComplexIdentifier
塞满到JSON ID: stringified_identifier
。序列化很好地工作,但不幸的是,在反序列化过程中,JSON4S不会使用只有1个字符串构造函数的默认构造函数。它找到构造函数,但是如果标识符的签名为case class ComplexIdentifier(whatever: String)
,它将尝试从JString(stringified_identifier)
中提取whatever
名称。这失败了,所以MappingException
被内部抛出。
有什么办法教JSON4S使用默认构造函数而不提取这样的值吗?只要使用JString
的值并使用它构造Stringifiable
就显而易见了。
谢谢!