Есть ли способ получить lift-json для автоматического преобразования числовых строковых полей в числовой тип? - PullRequest
1 голос
/ 16 ноября 2011

Я использую 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?

1 Ответ

2 голосов
/ 16 ноября 2011

Вы можете сделать это, преобразовав JSON.

val json = parse("""{"id": "35", "name": "My topic", ...}""")
json transform { case JField("id", JString(s)) => JField("id", JInt(s.toInt)) }

А затем извлечь класс case из преобразованного JSON.

...