gpt4 book ai didi

scala - 在 argonaut 中转换 JSON 字段名称

转载 作者:行者123 更新时间:2023-12-01 03:52:18 25 4
gpt4 key购买 nike

出于向后兼容性的原因,我正在编写一个库来转换来自 API 的 JSON 响应。我需要做的是接受任意 JSON,并更改某些字段名称。我正在使用 scala 和 argonaut,但我在文档或更改字段名称的示例中看不到任何方法,只有值。

最佳答案

我不知道有什么特别好的方法可以做到这一点,但是编写一个助手来替换对象中的字段,然后在带有 withObject 的游标中使用它并不太糟糕。 :

def renameField(before: JsonField, after: JsonField)(obj: JsonObject) =
obj(before).map(v => (obj - before) + (after, v)).getOrElse(obj)

Parse.parseOption("""{ "a": { "b": { "c": 1 } } }""").flatMap { json =>
(json.hcursor --\ "a").withFocus(_.withObject(renameField("b", "z"))).undo
}

这将返回 Some({"a":{"z":{"c":1}}})正如预期的那样。

关于scala - 在 argonaut 中转换 JSON 字段名称,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21264764/

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