"first_value", "second_key"->Map("second_first_key"->"second_firs-6ren">
gpt4 book ai didi

scala - 将嵌套映射中的所有键转换为 Scala 中的驼峰式大小写

转载 作者:行者123 更新时间:2023-12-05 01:00:48 29 4
gpt4 key购买 nike

我有一张这样的 map :

Map("first_key"->"first_value",
"second_key"->Map("second_first_key"->"second_first_value"))

如何在 Scala 中递归地将所有键转换为这样:
Map("firstKey"->"first_value",
"secondKey"->Map("secondFirstKey"->"second_first_value"))

最佳答案

这应该做你想做的:

def convert(m: Map[String, Any]): Map[String, Any] = {
m.map {
case (k, v) =>
val k2 = toCamel(k)
val v2: Any = v match {
case s: String => s
case x: Map[String, Any] => convert(x)
}
k2 -> v2
}
}

def toCamel(s: String): String = {
val split = s.split("_")
val tail = split.tail.map { x => x.head.toUpper + x.tail }
split.head + tail.mkString
}

val m = Map("first_key"->"first_value",
"second_key"->Map("second_first_key"->"second_first_value"))

convert(m)
// Map(firstKey -> first_value, secondKey -> Map(secondFirstKey -> second_first_value))

关于scala - 将嵌套映射中的所有键转换为 Scala 中的驼峰式大小写,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28956417/

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