是否可以使用 Json4s 或 lift 或任何其他库序列化以下类的对象?
class User(uId: Int) extends Serializable {
var id: Int = uId
var active: Boolean = false
var numTweets: Int = 0
var followers: ArrayBuffer[Int] = null
var following: ArrayBuffer[Int] = null
var userTimeline: Queue[String] = null
var homeTimeline: Queue[String] = null
var userTimelineSize: Int = 0
var homeTimelineSize: Int = 0
//var notifications: Queue[String] = null
var mentions: Queue[String] = null
var directMessages: Queue[String] = null
}
最佳答案
您可以为此目的使用 Json4s(在 FieldSerializer
的帮助下),下面是开始序列化 User
对象的代码:
def main(args: Array[String]) {
import org.json4s._
import org.json4s.native.Serialization
import org.json4s.native.Serialization.{read, write, writePretty}
implicit val formats = DefaultFormats + FieldSerializer[User]()
val user = new User(12)
val json = write(user)
println(writePretty(user))
}
此外,在您的非案例类中,JSON 中缺少的任何内容都需要是一个选项。
另一种方法是寻找 Genson :
def main(args: Array[String]) {
import com.owlike.genson._
import com.owlike.genson.ext.json4s._
import org.json4s._
import org.json4s.JsonDSL._
import org.json4s.JsonAST._
object CustomGenson {
val genson = new ScalaGenson(
new GensonBuilder()
.withBundle(ScalaBundle(), Json4SBundle())
.create()
)
}
// then just import it in the places you want to use this instance instead of the default one
import CustomGenson.genson._
val user = new User(12)
val jsonArray = toJson(user)
println(jsonArray)
}
关于scala - 是否可以在 Scala 中序列化非案例类?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27456548/