1

我正在使用 Upickle/Ujson 并想编写一个自定义编码器来掌握事情的窍门。

假设我有以下层次结构(来自这里的教程:链接

import upickle.default._

object TestDrive extends App {
  sealed trait TypedFoo

  object TypedFoo{
    import upickle.default._

    implicit val readWriter: ReadWriter[TypedFoo] = ReadWriter.merge(
      macroRW[Bar], macroRW[Baz], macroRW[Quz]
    )

    case class Bar(i: Int) extends TypedFoo
    case class Baz(s: String) extends TypedFoo
    case class Quz(b: Boolean) extends TypedFoo
  }

  import TypedFoo._
  println(writeJs(Bar(100)))
}

首先,这无法编译。为什么会这样?我误解了页面吗?

第二

如果我想序列化 Bar 并同时添加一个字段 "parent":"TypedFoo" 怎么办?所以酒吧看起来像:

{"parent":"TypedFoo", "$type":"package.TestDrive.TypedFoo.Bar","i":100}

我该怎么做呢?

4

0 回答 0