我有一个嵌套的json,它的结构还没有定义。每次我运行的时候它都是不同的,因为我是从一个远程文件中阅读的。我需要将这个json转换成Map[String, Any]
类型的map。我试着研究json4s和Jackson解析器,但是它们似乎没有解决我的这个问题。有人知道我怎么才能做到这一点吗?
示例字符串:
{"body":{
"method":"string",
"events":"string",
"clients":"string",
"parameter":"string",
"channel":"string",
"metadata":{
"meta1":"string",
"meta2":"string",
"meta3":"string"
}
},
"timestamp":"string"}
巢状层次可以是任意的,也可以不预先定义。
为帮助使用案例:
我有一个Map[String,Any],我需要将它存储在一个文件中作为备份。所以我将它转换为一个json字符串并将其存储在一个文件中。现在每次我得到新数据时,我都需要从文件中获取json,将其再次转换为Map并执行一些计算。我不能将Map存储在内存中,因为如果我的作业失败,我会丢失它。
我需要一个解决方案,将json字符串转换回原来的Map,我有之前,我转换它。
2条答案
按热度按时间e5njpo681#
我在
json4s
3.2.11中尝试了以下方法,结果成功了:也许你没有定义
Formats
类型的implicit val
?还要注意,你不需要在every和each方法中有implicit val
,只要它在作用域中是 * findable * 的。ej83mcc02#
可以使用以下代码将JSON字符串解析为
Map[String, Any]
但是,这不是类型安全的,因此在从Map中提取值时应谨慎使用。