我有一个 json 数组settings像这样:
[
{
"name": "Company Name",
"key": "company_name",
"default": "Foo"
}, {
"name": "Deposit Weeks",
"key": "deposit_weeks",
"default": 6
}, {
"name": "Is VAT registered",
"key": "vat_registered",
"default": false
}
]
我想将其解析为Seq
of Setting
对象。我尝试通过使用特征并根据 json 对象中的数据类型定义不同的案例类来定义我的 json 格式:
sealed trait Setting
case class StringSetting(name: String, key: String, default: String) extends Setting
case class IntSetting(name: String, key: String, default: Int) extends Setting
case class BoolSetting(name: String, key: String, default: Boolean) extends Setting
现在我尝试解析 json:
val json = Json.parse(jsonStr)
implicit val jsonFormat: Format[Setting] = Json.format[Setting]
val result = Try(json.as[Seq[Setting]])
这里我得到一个编译错误:
错误:(19, 61) 未找到 unapply 或 unapplySeq 函数
隐式 val jsonFormat: Format[设置] = Json.format[设置]
有没有办法将每个设置映射到其适当的案例类?