【发布时间】:2013-07-08 07:43:49
【问题描述】:
我有一张像下面这样的地图
val map : scala.collection.mutable.Map[String,Any] = Map(
dummy1 -> ["cat1", "hash1", 101, 1373269076, {"1" : ["dummy", "dummy", "dummy"]}],
dummy2 -> ["cat1", "hash1", 102, 1373269076, {"2" : ["dummy", "dummy", "dummy"]}],
dummy3 -> ["cat1", "hash1", 103, 1373269076, {"3" : ["dummy", "dummy", "dummy"]}]
)
我把它转换成Json字符串,然后用下面的代码写到一个文件中
Some(new PrintWriter("foo.txt")).foreach{p =>
p.write(JSONObject(map.toMap).toString()); p.close
}
我能够使用
从文件中读取 Json 字符串val json_string = scala.io.Source.fromFile("foo.txt").getLines.mkString
如何从上面的 Json 字符串中取回我的地图?
编辑:能够阅读地图
val map1 = JSON.parseFull(json_string).get.asInstanceOf[Map[String,Any]]
但是,随着地图大小的增加,此过程需要更多时间。
【问题讨论】:
-
more time,你的意思是 O(n) 还是更糟的东西?如果更糟,请考虑扩展您的堆。 -
ujson 库是最好的现代解决方案。已接受答案中的库已存档,不再处于活动状态。详情请参阅我的回答。