2016-06-06 70 views
0

我有一個文件列表,用它可以添加到一個JSON對象分別字段和值在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 
) 

然而,一些文件可能丟失的領域之一,所以我需要一個更加動態的方法取決於每個文件的字段,否則會拋出異常。對此最好的方法是什麼?

+0

有'Any'作爲'Map'的值類型是不是一個很好的主意 – cchantep

回答

2

你可以嘗試JsObject代替。它的構造函數需要元組,你可以從你的地圖獲得與方法toSeq,這個假設,你要使用相同的密鑰在您的JSON作爲地圖的序列。

val jsonDoc = new JsonObj(doc.toSeq) 
+0

不幸的是,它的地圖(字符串,任意)和所需的打字(字符串,JsValue),我使出在可能爲空的字段上使用getOrElse以避免錯誤 –