有没有办法让lift-json将数字字符串字段自动转换为数字类型?

问题描述:

我使用lift-json从POST请求反序列化简单对象。例如:有没有办法让lift-json将数字字符串字段自动转换为数字类型?

{"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-电梯读取ID作为长期自动?

您可以通过转换JSON来完成。

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

然后从转换后的JSON中提取一个case类。

+0

谢谢!我希望能够在不解析两次的情况下做到这一点,但这会做到。 – gregsilin