3

您好我正在尝试使用反射提取 JSON

import net.liftweb.json._
case class Bike(make: String, price: Int) {
   def this(price: Int) = this("Trek", price)
}

val cls = Class.forName("Bike")
val manifest = Manifest.classType(cls)
val parsedData =net.liftweb.json.JsonParser.parse(json)

JsonParser.parse(""" {"price":350} """).extract[manifest]

但是我收到此错误:

not found: type manifest
  JsonParser.parse(""" {"price":350} """).extract[manifest]
                                                   ^

虽然清单来自清单类型

4

2 回答 2

4

可以直接解压到case class

val json = "the json";

val bike = parse(json).extract[Bike];

JSON解析是通过反射完成的。

如果该类是运行时构造,则创建一个TypeInfo实例并将其传递给 extract 方法。

于 2013-08-08T10:23:20.453 回答
1

extract()如果您为其提供TypeInfo实例,则该方法的变体可能对您有用。

见这里:https ://github.com/lift/lift/blob/master/framework/lift-base/lift-json/src/main/scala/net/liftweb/json/Extraction.scala#L178

于 2013-08-08T11:26:47.947 回答