如何使用Scala将普通类转换为JSON和从JSON转换?

时间:2013-07-10 09:04:36

标签: json scala converter

我找到了一些使用JSON进行案例类转换的示例。但正常的课程呢?

假设我有一个普通的课程:

class User {
  var username = "Freewind"
  var email = "test@test.com"
  var age = 10
}

如何将其转换为JSON,如下所示?

{
    "username" : "Freewind",
    "email" : "test@test.com",
    "age" : 10
}

如何将其转换回User对象?


更新

我从问题中删除了“lift-json”。任何图书馆都没问题。

1 个答案:

答案 0 :(得分:1)

我强烈建议切换到案例类,因为就框架而言,它打开了更多的大门。如果您不想切换,可以通过Jackson Scala Module选择杰克逊。使用该库和以下代码,我能够对User类进行适当的双向序列化:

  val mapper = new ObjectMapper()
  mapper.registerModule(DefaultScalaModule)

  val sw = new StringWriter
  val u = new User
  mapper.writeValue(sw, u)
  val json = sw.toString()
  val user = mapper.readValue(json.getBytes, classOf[User])

与其他依赖于案例类的框架相比,scala友好一点,但它会完成工作。