2013-07-10 185 views
0

我发现了一些使用JSON进行案例类转换的例子。但是正常的课程呢?如何使用Scala将普通类转换为JSON并将其转换为JSON?

假设我有一个普通类:

class User { 
    var username = "Freewind" 
    var email = "[email protected]" 
    var age = 10 
} 

如何将其转换为JSON,如下面的?

{ 
    "username" : "Freewind", 
    "email" : "[email protected]", 
    "age" : 10 
} 

如何将其转换回用户对象?


更新:

我删除了 “提升JSON” 从问题。任何图书馆都会没事的。

回答

1

我强烈建议切换到案例类,因为就框架而言,它打开了更多的门。如果你不想切换,可以使用的一个选项是Jackson,通过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]) 

这是有点少阶友好然后依赖于case类的其他框架,但它会得到任务完成。

+0

非常感谢你!有用 :) – Freewind