Я использую lift-json для десериализации простых объектов из запроса POST. Пример:
{"id": "35", "name": "My topic", "slug": "my-slug", "imageUrl": "http://foo.bar/image.png"}
определение класса:
class Topic(var id: Option[Long], var name: String, val slug: String, val imageUrl: String)
Тогда я использую
read[Topic](jsonString)
Можно ли заставить json-lift автоматически читать идентификатор как Long?
Вы можете сделать это, преобразовав JSON.
val json = parse("""{"id": "35", "name": "My topic", ...}""") json transform { case JField("id", JString(s)) => JField("id", JInt(s.toInt)) }
А затем извлечь класс case из преобразованного JSON.