3

我正在尝试使用 Jerkson 在采用泛型类型的方法中生成枚举的 Json 表示 - 但它看起来很奇怪。我也尝试使用 case 对象,但 Json 结果看起来也不错:

object WeekDay extends Enumeration {
  type WeekDay = Value
  val Mon, Tue, Wed, Thu, Fri, Sat, Sun = Value
}

trait Letter
case object A extends Letter
case object B extends Letter
case object C extends Letter

object Test extends App {
  import com.codahale.jerkson.Json._

  import WeekDay._
  def printWeekDay(weekday: WeekDay) {println("weekday: " + generate(weekday))}
  printWeekDay(Mon)

  def printLetter(letter: Letter) {println("letter: " + generate(letter))}
  printLetter(A)
}

运行时,我得到:

weekday: {"$outer":{"ValueSet$module":null},"scala$Enumeration$Val$$i":0}
letter: {}

关于如何在 Json 中获得正确值的任何想法?

4

1 回答 1

0

您可能需要在 Enumeration 和 jerkson.Json.JsValue 之间进行隐式转换。

playframework 使用这种方法

http://www.playframework.org/documentation/api/2.0/scala/index.html#play.api.libs.json.Writes

于 2012-05-09T22:23:10.860 回答