2017-08-08 116 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 
})