我有一个数据源,保存为json格式字符串。我想要做的是将每个json记录读作case class
,我使用json4s
作为解析器。并使用extract
方法获取案例类。
我的班级是这样的:
import org.json4s._
import org.json4s.JsonDSL._
import org.json4s.jackson.JsonMethods._
case class Order(
order_id: String,
buyer_id: String,
seller_id: Long,
price: Double
)
,解析代码为:
file.map(parse(_).extract[Order])
但这是在课外完成的,我想要的是json字符串作为class Order
的构造函数参数
但据我所知,case类构造函数必须使用默认构造函数。
那么无论如何都要处理这个问题?
答案 0 :(得分:2)
您可以将伴侣对象用于此目的:
import org.json4s._
import org.json4s.JsonDSL._
import org.json4s.jackson.JsonMethods._
case class Order(
order_id: String,
buyer_id: String,
seller_id: Long,
price: Double
)
object Order {
def apply(file: File): Order = {
file.map(parse(_).extract[Order])
}
}
然后像这样使用它:
val file = openFile(...)
val order = Order(file)
答案 1 :(得分:0)
您可能也想要web: bundle exec passenger start -p $PORT --max-pool-size 3 --nginx-config-template nginx.conf.erb
:
implicit