为什么带有枚举的对象的 Gson().toJson() 抛出 StackOverflowError?
Why does Gson().toJson() of object with Enumeration throw StackOverflowError?
import Tenum.Tenum
import com.google.gson.Gson
object Temp extends App {
val gson = new Gson()
gson.toJson(new Status("foo", Tenum.X))
System.exit(1)
}
case class Status(id: String, tenum: Tenum)
object Tenum extends Enumeration {
type Tenum = Value
val X = Value
}
我以为它只会打印:
{id:"foo", tenum:"X"}
可能是因为 Scala Enumeration
上有一个字段是自引用的,而 Gson 试图序列化它,陷入死循环。
我会尝试序列化 Tenum.X.toString
(或在您的枚举上提供一个 json 字段)或四处寻找 Scala Gson 包装器。
import Tenum.Tenum
import com.google.gson.Gson
object Temp extends App {
val gson = new Gson()
gson.toJson(new Status("foo", Tenum.X))
System.exit(1)
}
case class Status(id: String, tenum: Tenum)
object Tenum extends Enumeration {
type Tenum = Value
val X = Value
}
我以为它只会打印:
{id:"foo", tenum:"X"}
可能是因为 Scala Enumeration
上有一个字段是自引用的,而 Gson 试图序列化它,陷入死循环。
我会尝试序列化 Tenum.X.toString
(或在您的枚举上提供一个 json 字段)或四处寻找 Scala Gson 包装器。