【发布时间】:2016-09-21 09:32:13
【问题描述】:
我有一个 settings 的 json 数组,如下所示:
[
{
"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 的 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[Setting] = Json.format[Setting]
有没有办法将每个设置映射到相应的案例类?
【问题讨论】:
-
在这里查看我的代码stackoverflow.com/a/49934623/297113
-
@JaiPrakash 你的回答与这个问题无关。
标签: json scala playframework