【发布时间】:2020-07-06 15:58:47
【问题描述】:
我有一个我需要处理的 JSON 字符串,我正在按以下方式映射它:
val jsonMap = mapper.readValue[Map[String, Object]](jsonString)
我的jsonMap 包含以下值:
Map(k1 -> List(Map(k2 -> v2), Map(k3 -> v3))
newJsonMap 的期望值为:
Map(k1 -> Map(k2 -> v2))
简而言之,我想将k1 键的值从List 转换为Map。我首先根据这个问题开始实现:Scala - Flatten a List of Maps to Map
但后来我意识到我正在处理不同的数据类型,在这种情况下 Map[String, Object] 这意味着我无法执行诸如使用 scala 内置的 flatten 方法来列表的操作。
有什么方法可以将此 Map 转换为 Scala Map,以便对 JSON 应用必要的转换?关于我应该如何进行的任何想法?
提前致谢。
【问题讨论】:
-
您使用的是哪个 json 库?您必须使用该库还是愿意接受其他选择?输出的类型应该是什么?你能给我们一个例子json吗?吃了你确定要地图的地图吗?你知道你正在解析的格式吗?如果知道,为什么不定义一些正确表示你的模型的案例类并将你的 json 解析成那个?
-
@LuisMiguelMejíaSuárez,首先感谢您的帮助。我正在使用杰克逊模块将 JSON 读入 Map[String, Object]。主要目标是将 json 列表转换为 json 元素(即,将“[ ]”替换为“{ }”)。示例:json = { k1 = [ k2 = { ... } .. ] .. } 转换为 { k1 = { k2 = { ... } ..} .. }。在这种特殊情况下,由于我只需要针对预期的特定情况进行此转换,因此我找到的解决方案适合该问题。谢谢:)
标签: scala