Serialisation/deserialisation 用于使用 Upickle 密封的特征

Serialisation/deserialisation for sealed traits with Upickle

我正在尝试从我的播放服务器调用网络服务,我正在为 serialisation/deserialisation 使用 upickle。我的问题是我有一个密封的特征

sealed trait RequestContent {
}
case class CreateUserRequest (email: String, password: String,jsonBlob: Map[String, String], createBTCWallet: Boolean) extends RequestContent

当我尝试使用 upickle.default.write 作为

val userRequest = CreateUserRequest("email","pw",Map("name" -> "name", true))
write(userRequest) 

它为 $type 提供了一个额外的密钥。有没有办法在不输入 upickle 的情况下将数据获取到 post?

在密封特征层次结构的情况下,uPickle 需要一个额外的 $type 字段才能反序列化,因为它需要知道要实例化哪个子类。

所以这个额外的钥匙的存在是完全正常和必要的。无法删除它,因为那样会阻止反序列化工作。