例如,给出以下JSON字符串:
[{"id": "user1", "password": "ps1"},{"id": "user2", "password": "ps2"},{"id": "user3", "password": "ps3"}]
在Scala中解析它并在每个结果中进行迭代并正确分析它的最佳和最优化的方法是什么?
谢谢。
答案 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)
您可以使用 lift-json 库:http://www.assembla.com/spaces/liftweb/wiki/JSON_Support
答案 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,这是最后一章。