【发布时间】:2011-06-30 09:26:27
【问题描述】:
几天来,我一直在努力解决通过 lift-json 应该很简单的事情:将地图序列化为 JSON。
我知道,我知道——“根对象还不能是 List 或 Map”——但我现在愿意封装一个案例类,但我仍然无法让它工作。感谢一些堆栈溢出帮助,我已经进行了序列化,但我无法从字符串中反序列化它。我收到诸如“_ 没有可用值”和“没有关于类型的信息”之类的错误。
网络上还有其他较早的帖子表明类型提示是答案,但这只会导致不同的错误,例如“不知道如何反序列化 __。”
对于 Scala 2.8.0 和 Lift 2.2:
import net.liftweb.json._
import net.liftweb.json.Serialization.{read, write}
case class MapWrap(data: Map[String, Any])
object Scaffold {
def main(args: Array[String]) {
implicit val formats = Serialization.formats(NoTypeHints)
//implicit val formats = Serialization.formats(ShortTypeHints(List(classOf[MapWrap])))
//implicit val formats = Serialization.formats(FullTypeHints(List(classOf[MapWrap])))
val ser = write(new MapWrap(Map[String,Any]("key" -> "value")))
println("JSON: " + ser)
println(read[MapWrap](ser))
}
}
println(read[MapWrap](ser)) 行导致投诉“net.liftweb.json.MappingException: No usable value for data。”
如何反序列化这个案例类包装器(或实现我的最终目标:read(write(Map("key" -> "value"))))?
【问题讨论】:
标签: json serialization scala lift