2
我有一個json對象添加到數組項目的問題。這個問題一直困擾我很長一段時間,但我仍然不知道如何解決它。playframework - 如何更新json的索引數組項目
我想在一個數組項添加JSON對象,下面是現有JSON對象:
{
"key1":[
{"key11":"value11"},
{"key12":"value12"}
]
}
我想將其與新的JSON對象被轉換加入:
這裏是我的代碼:
val json = Json.obj(
"key1" ->Json.arr(
Json.obj("key11" -> "value11"),
Json.obj("key12" -> "value12")
)
)
val transform= (__ \ 'key1)(0).json.update( __.read[JsObject].map{ o => o ++ Json.obj("key111" -> "value111") })
json.validate(transform)
但是最後一行給出了下面的例外。有沒有人可以給我關於如何實現將json對象添加到數組項目的建議?
java.lang.RuntimeException: expected KeyPathNode
at play.api.libs.json.JsPath$.step$1(JsPath.scala:141)
at play.api.libs.json.JsPath$.step$1(JsPath.scala:144)
at play.api.libs.json.JsPath$.play$api$libs$json$JsPath$$buildSubPath$1(JsPath.scala:150)
at play.api.libs.json.JsPath$$anonfun$createObj$1.apply(JsPath.scala:155)
at play.api.libs.json.JsPath$$anonfun$createObj$1.apply(JsPath.scala:153)
at scala.collection.IndexedSeqOptimized$class.foldl(IndexedSeqOptimized.scala:51)
at scala.collection.IndexedSeqOptimized$class.foldLeft(IndexedSeqOptimized.scala:60)
at scala.collection.mutable.WrappedArray.foldLeft(WrappedArray.scala:34)
at play.api.libs.json.JsPath$.createObj(JsPath.scala:153)
at play.api.libs.json.PathReads$$anonfun$jsUpdate$1$$anonfun$apply$15.apply(JsConstraints.scala:81)
at play.api.libs.json.PathReads$$anonfun$jsUpdate$1$$anonfun$apply$15.apply(JsConstraints.scala:81)
at play.api.libs.json.JsResult$class.map(JsResult.scala:73)
謝謝您聽
西里爾