gpt4 book ai didi

json - 使用 json4s 从 json 字符串中提取键

转载 作者:行者123 更新时间:2023-12-04 06:29:43 24 4
gpt4 key购买 nike

谁能告诉我如何使用 json4s 从 json 中提取 key 。我的用例:json 存储为 scala 变量中的字符串:

 {
"key1" : "val1",
"key2" : ["12", "32"],
"key3" : {"keyN" : "valN"}
}

我想将其转换为以下 Map[String, String]:

 (key1 -> "val1", key2 -> "[\"12\",\"32\"]", key3 -> "{\"keyN\":\"valN\"}"

有没有一种简单的方法可以用 json4s 实现这一点?提前致谢

最佳答案

val result: Map[String, String] = parse( """ {
| "key1" : "val1",
| "key2" : ["12", "32"],
| "key3" : {"keyN" : "valN"}
| }""".stripMargin).mapField(k => {
val v: String = k._2 match {
case s: JString => k._2.extract[String]
case _ => write(k._2)
}
(k._1, JString(v))
}).extract[Map[String, String]]
println(result)

您可以使用 mapFieldJValue 映射到 String

  • 如果值的类型是 String 就提取为 String
  • 如果值为其他类型,使用json4s解析为JSON字符串
  • 最后将 JValue 提取为 Map[String, String]

关于json - 使用 json4s 从 json 字符串中提取键,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34288752/

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