我有下面的代码重新格式化JSON对象到另一个JSON对象:如何基于地图中阶值过滤掉键和值
val newJson = Json.toJson(retJson.fields.flatMap {
case (epoch, obj) => obj.as[JsObject].fields.map(epoch -> _)
}.groupBy(_._2._1)
.mapValues(
_.map {
case (epoch, (k, v)) => {
var epochDate = epoch.substring(0, 13).toLong
epochDate = convertEpoch(epochDate, timezoneOffset)
Seq[Double](epochDate, sensorCalculations(whatevers, Option(v.as[String])))
}
}))
这种运作良好,但我们认为,当一个新的要求值的值为-1,我们应该忽略此元素,并且不会将其包含在结果中。我不知道如何正确地做到这一点。
---编辑---
我试图引起匹配错误
case (epoch, (k, v)) if v.as[String] != "-1" => {
感谢以下。
其实我已经试过了,问题是比赛并不详尽,并最终导致一个MatchError – chiappone 2013-02-13 16:01:47