如何在嵌套的Json中更改值

时间:2014-05-12 17:05:31

标签: json playframework

这类似于How to replace a JSON value in Play,但处于更复杂的情况。

考虑一个普遍构建的价值。

val x = Json.obj(
     "key_a" -> "value_a",
     "key_b" -> Json.obj(
          "key_a" -> 0,
          "key_b" -> 1,
          "key_c" -> Json.obj(
              "key_a" -> Json.obj(
                  "key_a" -> "value_a",
                  "key_b" -> 2
              ),
              "key_b" -> "value_b",
              "key_c" -> "value_c"
          ),
     "key_c" -> "value_c",
     ...
)

假设我想将x \ "key_b" \ "key_c" \ "key_a" \ "key_a"更改为"new_value"

我认为对象在play.api.libs.json中是不可变的,所以我认为我实际上正在寻找原始的副本,其中一个值已更改。

这样做的最佳方式是什么?


我不认为这是一个病态用例。

在Javascript中,它将是一行

x.key_b.key_c.key_a.key_a = 'new_value';

我希望Scala解决方案不会更糟糕。

0 个答案:

没有答案