【发布时间】:2017-11-13 05:17:05
【问题描述】:
由于我正在编写一个函数来在我的 Scala 代码中从另一个 API 请求数据,因此响应 Json 的格式如下:
"data": {
"attributeName": "some String",
"attributeValue": false,
"attributeSource": "Manual",
"attributeValueLabel": null
},
"data": {
"attributeName": "some String",
"attributeValue": "daily",
"attributeSource": "Manual",
"attributeValueLabel": "Almost Daily"
}
请注意,有时attributeValue 的类型是String 值,有时它是Boolean 值。
所以我正在尝试编写自己的读取和写入来动态读取类型。
case class Data(attributeName: Option[String], attributeValue: Option[String], attributeSource: Option[String], attributeValueLabel: Option[String])
object Data{
implicit val readsData: Reads[Data] = {
new Reads[Data] {
def reads(json: JsValue) = {
val attrValue = (json \ "attributeValue").as[] // How to cast to Boolean some time, but some other time is a String here
......
}
}
}
正如您在我的评论中看到的那样,我坚持将(json \ "attributeValue") 转换为String/Boolean,基于API 的返回类型。我该怎么做?
【问题讨论】:
标签: json scala playframework casting