如何使用Jerkson与枚举?

时间:2012-05-09 14:10:57

标签: json scala jackson

我正在尝试使用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中获得正确值的任何想法?

1 个答案:

答案 0 :(得分:0)

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

playframework使用这种方法

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