我正在尝试通过圆视光学技术在任何级别上转换“模型”字段,但在实现这一点方面遇到了困难。
输入:
{
"model":"ModelExample1",
"test": {
"model":"ModelExample2"
}
}
预期的运量:
{
"model":"AAAA-ModelExample1",
"test": {
"model":"AAAA-ModelExample2"
}
}
答案 0 :(得分:1)
圆形光学元件不提供开箱即用的递归修改功能。但是,您可以创建一个:
import io.circe.optics.JsonPath._
val modifyModel: Json => Json = root.model.string.modify("AAAA-" + _)
def modifyAllModels(value: Json): Json =
root.each.json.modify(modifyAllModels)(modifyModel(value))
此修改将应用于所有键,而不仅是test
-如果您不希望这样做,则将each
中的test
交换为modifyAllModels
。