我有一个案例类:
case class Cart(cart_id :UUID, cart_entries :Map[String,CartEntry]){
//override def toString: String = "Saini CartId = " + cart_id.toString
}
我正在使用 net.liftweb.json._ 将其转换为 json :
implicit val formats = Serialization.formats(NoTypeHints) + new UUIDserializer
val json = write(cart)
println(json)
Json作为
{"cart_id":"68eb787f-746c-4320-9ef4-8b5c7f0d7e21","cart_entries":[{"_1":"ABC","_2":{"sku_id":"ABC","quantity":12,"price":213.0}}]}
在将我的 json 转换回购物车对象时:
val jValue = read[Cart](json)
我得到了这个例外。
[错误] [12/22/2016 17:11:23.784] [System-akka.actor.default-dispatcher-3] [akka://System/user/68eb787f-746c-4320-9ef4-8b5c7f0d7e21] 没有可用值对于cart_entries 类型接口没有构造函数 scala.collection.mutable.Map, JArray(List(JObject(List(JField(_1,JString(ABC))), JField(_2,JObject(List(JField(sku_id,JString(ABC))) , JField(quantity,JInt(12)), JField(price,JDouble(213.0)))))))) net.liftweb.json.MappingException: Cart_entries 没有可用值 没有类型接口 scala.collection.mutable 的构造函数.Map, JArray(List(JObject(List(JField(_1,JString(ABC))), JField(_2,JObject(List(JField(sku_id,JString(ABC))), JField(数量,JInt(12)), JField (价格,JDouble(213.0)))))))) 在 net.liftweb.json.Meta$.fail(Meta.scala:191) 在 net.liftweb.json.Extraction$.mkValue$1(Extraction.scala:357) 在 net.liftweb.json.Extraction$.net$liftweb$json$Extraction$$build$1(Extraction.scala:317) 在 net.liftweb.json.Extraction$$anonfun$14.apply(Extraction.scala:253 ) 在 net.liftweb.json.Extraction$$anonfun$14.apply(Extraction.scala:253) 在 scala.collection.immutable.List.map(List.scala:277) 在 net.liftweb.json.Extraction$.instantiate $1(Extraction.scala:253) at net.liftweb.json.Extraction$.newInstance$1(Extraction.scala:286) at net.liftweb.json.Extraction$.net$liftweb$json$Extraction$$build$1(Extraction .scala:315) 在 net.liftweb.json.Extraction$.net$liftweb$json$Extraction$$extract0(Extraction.scala:366) 在 net.liftweb.json.Extraction$.net$liftweb$json$Extraction$ $extract0(Extraction.scala:199) 在 net.liftweb.json.Extraction$.extract(Extraction.scala:43) 在网络。liftweb.json.JsonAST$JValue.extract(JsonAST.scala:312) at net.liftweb.json.Serialization$.read(Serialization.scala:58) at 我该怎么办?