解析JSON并在Scala中迭代对象

时间:2011-09-14 09:55:07

标签: json parsing scala iteration

例如,给出以下JSON字符串:

[{"id": "user1", "password": "ps1"},{"id": "user2", "password": "ps2"},{"id": "user3", "password": "ps3"}]

在Scala中解析它并在每个结果中进行迭代并正确分析它的最佳和最优化的方法是什么?

谢谢。

5 个答案:

答案 0 :(得分:8)

使用Lift-JSON:


import net.liftweb.json.JsonParser._
import net.liftweb.json.DefaultFormats

val jsonString = //your jsonString....

case class Credential (id:String, password:String)

implicit val formats = DefaultFormats
val credentials = parse(jsonString).extract[List[Credential]]

credentials foreach { cred => println(cred.id + " " + cred.password) } 

一切都在这里解释:http://www.assembla.com/spaces/liftweb/wiki/JSON_Support

答案 1 :(得分:6)

我认为这篇博文提供了对您的问题的全面答案:http://debasishg.blogspot.com/2011/02/applicatives-for-composable-json.html最后还有一个指向完整源代码库的链接。

答案 2 :(得分:2)

答案 3 :(得分:1)

除了lift-json和上面提到的类型类方法之外,我知道了spray-json(PEG解析器)和twitter的json lib(基于Scala编程书中的代码)和blueeyes中的json lib 。还有其他人!

我建议看一下Jackson,它是一个成熟且功能丰富的库,用于从Java进行JSON解析。

杰克逊对scala有一个“官方”扩展:jackson-module-scala和另一个Jerkson

答案 4 :(得分:1)

框架中有一个JSON解析库,使用解析器组合器构建:http://www.scala-lang.org/api/current/scala/util/parsing/json/package.html

Odersky和Venners将引导您完成in their book,这是最后一章。