У меня есть исключение из lift-json, когда я хочу десериализовать строку json. (используя v2M1).
В основном у меня есть следующий класс:
@BeanInfo
case class Game(val id:Int,
val bad:Map[String,Plan],
val good:Map[String,Plan])
и я использую
net.liftweb.json.Serialization.read[Game](jsonInString)
для десериализации jsonInString в класс кейсов Game. К сожалению, я получаю следующую ошибку:
net.liftweb.json.MappingException: Can't find primary constructor for class interface scala.collection.immutable.Map
at net.liftweb.json.Meta$.fail(Meta.scala:93)
at net.liftweb.json.Meta$Reflection$$anonfun$primaryConstructorOf$1.apply(Meta.scala:129)
at net.liftweb.json.Meta$Reflection$$anonfun$primaryConstructorOf$1.apply(Meta.scala:129)
at scala.Option.getOrElse(Option.scala:61)
at net.liftweb.json.Meta$Reflection$.primaryConstructorOf(Meta.scala:129)
at net.liftweb.json.Extraction$.newInstance$1(Extraction.scala:106)
at net.liftweb.json.Extraction$.build$1(Extraction.scala:119)
at net.liftweb.json.Extraction$$anonfun$2$$anonfun$apply$1.apply(Extraction.scala:119)
at net.liftweb.json.Extraction$$anonfun$2$$anonfun$apply$1.apply(Extraction.scala:119)
at scala.List.flatMap(List.scala:1132)
at net.liftweb.json.Extraction$$anonfun$2.apply(Extraction.scala:119)
at net.liftweb.json.Extraction$$anonfun$2.apply(Extraction.scala:119)
at net.liftweb.json.Extraction$.newInstance$1(Extraction.scala:106)
at net.liftweb.json.Extraction$.build$1(Extraction.scala:119)
at net.liftweb.json.Extraction$.extract0(Extraction.scala:154)
at net.liftweb.json.Extraction$.extract(Extraction.scala:37)
at net.liftweb.json.JsonAST$JValue.extract(JsonAST.scala:247)
at net.liftweb.json.Serialization$.read(Serialization.scala:50)
Я ценю ваши комментарии,
Спасибо,
-
PS - я пробовал v2M2 (снимок @ 10 февраля 2010 г. от Scala-tools.org), исключение прошло, но сериализация не верна! Смотрите комментарии ниже.