주어진 다음의 JSON에플레이 프레임 워크 : 어떻게 ... JSON 트리
{ "id":"1234",
"name" -> "joe",
"tokens: [{
"id":"1234",
"id":"2345"
}]
}
을 값의 모든 발생을 교체 ... 내가 좋아하는 xxxx
에 의해 모든 id
의 값을 교체해야 이 : 그럼
val json = Json.obj(
"id" -> "1234",
"name" -> "joe",
"tokens" -> Json.arr(
Json.obj("id" -> "1234"),
Json.obj("id" -> "2345")
)
)
json: play.api.libs.json.JsObject = {"id":"1234","name":"joe","tokens":[{"id":"1234"},{"id":"2345"}]}
모든 공을 받고 :
{ "id":"xxxx",
"name" -> "joe",
"tokens: [{
"id":"xxxx",
"id":"xxxx"
}]
}
의이 JSON 트리를 만들 시작하자 1,239,의 아주 간단하다 :
이제json \\ "id"
res64: Seq[play.api.libs.json.JsValue] = List("1234", "1234", "2345")
, 어떻게 xxxx
에 의해 모든 id
의 값을 대체 할 수 있습니까?
텍사스, 이미 시도 ...하지만 난 매개 변수로 키를 전달해야하고,이 경우는 작동하지 않습니다 : (: JsValue, 키 : 문자열 JSON) = json.update { 경우 (toXXXX 데프 (value) => JsString (value) } – j3d
@ j3d : "작동하지 않는다"고 정의 할 수 있습니까? 키와 대체 값이 두 매개 변수 인 경우 예제를 추가했습니다. 주석에 올린 코드가 잘못되었습니다 ('updateAll'을 사용해야하고 기존 값을 원하는 대체 코드와 일치시킵니다.) – Mikesname
Gasp, 당신의 코드가 완벽하게 작동합니다. 문제는 실제 예제가 더 복잡하다는 것입니다. 나는 방금 새로운 질문 [http://stackoverflow.com/questions/21801071/how-to-replace-all-the-values-with-the-same-key-in-a-json-tree]을 게시했습니다. 아직 지루하지 않다면, 빨리 볼 수 있습니다 ;-) – j3d