我需要构建一个JSON字符串,如下所示:
[
{ 'id': 1, 'name': 'John'},
{ 'id': 2, 'name': 'Dani'}
]
val jArray = JsArray();
jArray += (("id", "1"), ("name", "John"))
jArray += (("id", "2"), ("name", "Dani"))
println(jArray.dump)
Run Code Online (Sandbox Code Playgroud)
我需要能够添加行jArray,比如jArray += ...
最近的图书馆/解决方案是什么?
我有一张如下地图
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"]}]
)
Run Code Online (Sandbox Code Playgroud)
我将其转换为Json字符串,然后将其写入包含以下代码的文件中
Some(new PrintWriter("foo.txt")).foreach{p =>
p.write(JSONObject(map.toMap).toString()); p.close
}
Run Code Online (Sandbox Code Playgroud)
能够使用从文件中读取Json字符串
val json_string = scala.io.Source.fromFile("foo.txt").getLines.mkString
Run Code Online (Sandbox Code Playgroud)
如何从上面的Json字符串中获取我的地图?
编辑: 能够阅读地图
val map1 = JSON.parseFull(json_string).get.asInstanceOf[Map[String,Any]]
Run Code Online (Sandbox Code Playgroud)
但是,随着地图大小的增加,这个过程需要更多的时间.