gpt4 book ai didi

scala - 使用circe-optics递归遍历JSON

转载 作者:行者123 更新时间:2023-12-01 05:50:14 36 4
gpt4 key购买 nike

我有一个 json具有复杂的结构。像这样的东西:

{
"a":"aa",
"b":"bb",
"c":[
"aaa",
"bbb"
],
"d":{
"e":"ee",
"f":"ff"
}
}

我想大写所有字符串值。 The Documentation说:
root.each.string.modify(_.toUpperCase)

但正如预期的那样,只更新了根值。

如何制作 circe-optics递归遍历所有字符串值? JSON结构事先未知。

这是 example在斯卡斯蒂。

通过评论:
我希望所有字符串值都大写,而不仅仅是根值:
{
"a":"AA",
"b":"BB",
"c":[
"AAA",
"BBB"
],
"d":{
"e":"EE",
"f":"FF"
}
}

最佳答案

这是一个部分解决方案,因为它不是完全递归的,但它会解决 json 的问题。从你的例子:


val level1UpperCase = root.each.string.modify(s => s.toUpperCase)

val level2UpperCase = root.each.each.string.modify(s => s.toUpperCase)
val uppered = (level1UpperCase andThen level2UpperCase)(json.right.get)

关于scala - 使用circe-optics递归遍历JSON,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55356876/

36 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com