我正在尝试使用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中获得正确值的任何想法?
答案 0 :(得分:0)
您可能需要在Enumeration和jerkson.Json.JsValue之间进行隐式转换。
playframework使用这种方法
http://www.playframework.org/documentation/api/2.0/scala/index.html#play.api.libs.json.Writes