有没有办法让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类。
谢谢!我希望能够在不解析两次的情况下做到这一点,但这会做到。 – gregsilin