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