2017-08-08 53 views
0

我有一個非常複雜的JSON對象,其中包含一些我需要更新,刪除和添加元素的JSON數組。 要做到這一點,我嘗試使用直接指向我需要刪除陣列,像裏面的對象JsPath:在Scala/Play中添加/刪除JSON數組中的元素

/priceLists(1)/sections(0)/items(0)

要刪除的元素我試圖用json.prune它不工作,我得到這個錯誤:error.expected.jsobject

會這樣做的最好方法?

回答

0

你的問題缺乏一個精確的上下文(即你的json數據的結構),但讓我們來看看我們有什麼。

你得到的錯誤信息很清楚,你只能在json對象上調用prune來修剪它的一個值。你不能用它來修剪一個json數組的元素。

我只能建議你使用json.update,指出像修剪,更新只適用於json對象。在更新的主體中,像在通常情況下使用scala/java數據類型一樣處理數組。

__.json.update(__.reads[JsArray].map { jsArray => 
    val removedElement = JsArray(jsArray.value.filter(_ == ???)) 
    val addedElement = removedElement :+ JsBoolean(true) 
    addedElement 
})