1

我正在尝试从我正在使用 upickle 进行序列化/反序列化的播放服务器调用网络服务。我的问题我有一个密封的特征

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

当我尝试使用upickle.default.writeas

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

它为$type. 有没有办法让数据在不输入 upickle 的情况下发布?

4

1 回答 1

1

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

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

于 2015-12-21T10:36:41.303 回答