json - 如何将 Jerkson 与枚举一起使用?

标签 json scala jackson

我正在尝试使用 Jerkson 在采用泛型类型的方法中生成枚举的 Json 表示 - 但它看起来很奇怪。我也尝试使用案例对象,但 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 中获取正确值的任何想法?

最佳答案

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

playframework 使用这种方法

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

关于json - 如何将 Jerkson 与枚举一起使用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10517861/

相关文章:

json - 有没有办法让谷歌蜘蛛读取 json 数据?

scala - 使用spark访问HDFS失败

scala - 为什么在 spark 中不允许从 long to date 进行类型转换?

java - 当 jackson 自动检测 setter 时,我可以强制它使用帕斯卡大小写吗?

java - 我如何反序列化以 jackson 为单位的时间戳?

java - Spring Boot API返回不带标签的json

java - 从 JSON 字符串中删除元素

ios - 将 JSON String 转换为 Dictionary<String, Any> 将 Boolean 序列化为 Int

scala - 输入隐式的同义词?

java - Jackson:仅序列化给定类的给定实例变量