将Map值中的所有字段添加到Scala中的Json

时间:2016-06-06 17:57:36

标签: json scala playframework

我有一个文档列表,其数据的格式为Map[String, Any],因此可以将它们分别添加到包含字段和值的json对象中。所以我的代码在解析时看起来像这样:

val JsonDoc = Json.obj(
      "ORFID" -> doc("ORFID").toString,
      "ORF_len" -> doc("ORF_len").toString,
      "start" -> doc("start").toString,
      "end" -> doc("end").toString
...// more fields
)

但是某些文档可能缺少其中一个字段,因此我需要一个更动态的方法,具体取决于每个文档字段,否则抛出异常。对此最好的方法是什么?

1 个答案:

答案 0 :(得分:2)

您可以尝试使用JsObject。它的构造函数需要一个Seq of tuples,你可以使用方法toSeq从你的地图中获取,这假设你想在json中使用与Map中相同的键。

val jsonDoc = new JsonObj(doc.toSeq)