Я боролся с чем-то, что должно быть простым с помощью 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: нет полезного значения для данных."
Как можно десериализовать эту оболочку класса дел (или достичь моей конечной цели: прочитать (написать (карта)("ключ" -> "значение"))))?