如何将json字符串转换为scala映射?

前端之家收集整理的这篇文章主要介绍了如何将json字符串转换为scala映射?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我有一个嵌套的json,其结构未定义.由于我从远程文件中读取,因此每次运行时都可能不同.我需要将这个json转换为Map [String,Any]类型的地图.我试着研究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,再次将其转换为地图并执行一些计算.我无法将地图存储在内存中,因为如果我的工作失败,我会失去它.
我需要一个解决方案,将json字符串转换回我转换之前的原始地图.

解决方法

我用json4s 3.2.11尝试了以下方法,它可以工作:
import org.json4s._
import org.json4s.jackson.JsonMethods._

//...
def jsonStrToMap(jsonStr: String): Map[String,Any] = {
  implicit val formats = org.json4s.DefaultFormats

  parse(jsonStr).extract[Map[String,Any]]
}

也许你没有定义Formats类型的隐式val?另请注意,只要在范围内可以找到,就不需要在每个方法和每个方法中都有隐式val.

猜你在找的JavaScript相关文章