Writes
シリアル化されているクラスにない JSON オブジェクトを発行するを実装したいと思います。
ケースクラスの場合:
case class Foo(i:Int, s:String)
私は生産しようとしています:
{
"i": <int>,
"s": "<string>",
"other": "Some value."
}
単純な最初の試みは次のとおりです。
val writes: Writes[Foo] = ((
(__ \ "i").write[Int] and
(__ \ "s").write[String] and
(__ \ "other").write("Some value.")
)(unlift(Foo.unapply))
当然、後続のand
呼び出しが を生成し、 が を生成するため、CanBuild3
これはコンパイルされません。結果に値を追加して を生成することを検討しましたが、私が見つけたものはかなり悪く見え、言語メンテナーはそれを実装しません。Foo
unapply
Tuple2
Tuple3
これを回避する方法はありますが、結果の JSON に追加したいこれらのデコレーター値でモデル クラスを汚染したくありません。
助言がありますか?
値が JSON に存在しないが、結果のオブジェクトによって指定されている場合に値を提供して、別の方向に進むことができることに注意してください。Reads.pure