我有以下的用例: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
就顯而易見了。
謝謝!