0
我在斯卡拉的自定義數據類型的簡單值:編寫自定義對象JSON作爲斯卡拉(JSON讀取/寫入)
case class GPID(value: Int) {
// ... other stuff ...
implicit val writesGPID = new Writes[GPID] {
def writes(g: GPID): JsValue = {
Json.obj(
"GPID" -> g.value
)
}
}
implicit val reads: Reads[GPID] = (
(__ \ "GPID").read[Int]
).map(GPID(_))
}
正如你所看到的,它有一個讀/寫的方法,但這種結果在這樣的輸出:
「ID」:{ 「GPID」:1000}
但是,我們只是希望它的序列化/反序列化就像一個普通的詮釋:
「ID」:1000
我一直在試圖找出如何重寫讀/寫,但我運氣不好...任何建議,將不勝感激!
謝謝。
嗯。更接近,但不完全。它的序列化爲'「id」:{「id」:1000}'所以它仍然把它當作一個對象,而不是一個簡單的值......另外,我不能使用隱式讀取,因爲:'ScalaReflectionException:value apply封裝了多個重載替代品,不能被視爲一種方法。考慮調用<違規符號> .asTerm.alternatives並手動選擇所需的方法。 – Zac
已編輯,立即嘗試。 –
所以你需要提供一個!再次編輯。 –