如何在Scala中解析带有lift-json的JSON?

时间:2016-01-07 07:59:16

标签: scala scalability scala-collections scalaz

当我尝试解析json对象时,我收到以下错误。

import net.liftweb.json._

object SarahEmailPluginConfigTest {
  implicit val formats = DefaultFormats

  case class Mailserver(url: String, username: String, password: String)

  val json = parse("""{"url": "imap.yahoo.com", "username": "myusername", "password": "mypassword" }""")

  def main(args: Array[String]) {
    val m = json.extract[Mailserver]
    println(m.url)
    println(m.username)
    println(m.password)
  }
}

我添加了" lift-json_2.9.0-1-2.4.jar"到我的构建路径,我得到以下错误:

  

无法找到参数格式的隐含值:net.liftweb.json.Formats

     

方法提取的参数不足:(隐式格式:net.liftweb.json.Formats,隐式mf:scala.reflect.Manifest [MailServer])MailServer。未指定的值参数格式,mf

1 个答案:

答案 0 :(得分:0)

您的示例适用于scala 2.11.7lift-json-2.6.2。您使用的是什么版本的scala?从您上面提到的jar的名称开始,您应该使用scala 2.9.*,这是非常古老的。如果您不使用scala 2.9.*,我想这是因为Scala版本之间的二进制不兼容。如果您使用的是sbt,请尝试以下build.sbt

name := "<name of your project>"

scalaVersion := "2.11.7"

libraryDependencies += "net.liftweb" %% "lift-json" % "2.6.2"

然后,您可以删除旧的jar文件,因为sbt会为您处理此问题。