gpt4 book ai didi

scala - 是否可以在 Scala 中序列化非案例类?

转载 作者:行者123 更新时间:2023-12-01 16:14:24 24 4
gpt4 key购买 nike

是否可以使用 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/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com