我有下面的代碼重新格式化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