1
在Scala 2.11
,具有下面的代碼:在Scala中處理JSON?
import play.api.libs.json._
...
val data = // read json from file (3)
val JSON: JsValue = Json.parse(data mkString "\n") (4)
val items = JSON \ "items"
for (i <- 0 until 100) yield items(i)
- 如果我團結的最後兩行
for (i <- 0 until 100) yield (JSON \ "items")(i)
,將術語JSON \ "items"
爲每個i
或僅計算一次? - 是值得parallelise列表建設這個
for-expression
(我不關心哪些項目將 出現在列表中的順序),其中items
是JSON對象的數組? - 處理行(3 - 4)中解析JSON並驗證異常的最佳方法是什麼?
1.'JSON \「items」'只是一個檢索元素的dsl構造。它的O(1)可以隨時使用。所有解析和構建AST樹的工作已經在'Json.parse'中完成了。 – ipoteka
準確無誤。(JSON \「items」)(i)'已經夠好了。不幸的是,據我所知,json dsl不支持'JSON \「項目」\\ i'。 – ipoteka
這是一個選擇的問題,我猜。當我從外部解析可能無效的json時,我使用'import scala.util。{Try,Success,Failure}'。但是,當我在我的系統中生成json時,我不會將它們包裝到'Try []'中。不能推薦這些明顯的東西旁邊:( – ipoteka