给定以下枚举.

object MyEnum extends Enumeration {

  type MyEnum = Value

  val Val1 = Value("val1")
  val Val2 = Value("val2")
  val ValN = Value("valN")

  implicit val myEnumFormat = new Format[MyEnum] {
    def reads(json: JsValue) = MyEnum.withName(json.as[String].value) // doesn't compile
    def writes(myEnum: MyEnum) = JsString(myEnum.toString)
  }
}

... 我需要将它序列化/反序列化为JSON.myEnumFormat不编译,我总是收到以下错误消息:

type mismatch;
[error]  found   : models.MyEnum.Value
[error]  required: play.api.libs.json.JsResult[models.MyEnumValue]
[error]  Note: implicit value myEnumFormat is not applicable here because it comes after the application point and it lacks an explicit result type
[error]     def reads(json: JsValue) = MyEnum.withName(json.as[JsString].value)

Am I missing something?

推荐答案

试着把它改成

def reads(json: JsValue) = JsSuccess(MyEnum.withName(json.as[String].value))

Json相关问答推荐

服务器不返回JSON

使用更高级别架构中的字段值在$def内实现约束

在Golang中从 struct 手动创建JSON对象

GO KaZaam转换返回意外结果

如何在VB6中将字符串转换或解码为可读格式?

使用 jolt 变换压平具有公共列 JSON 的复杂嵌套

根据值过滤输入的JSON并使用它准备预期的输出

德纳比可视化区域图表 Power BI

Jolt 转换数组对象并将某些字段移动到嵌套数组

Jolt 不打印任何东西

使用带有逗号的字段名称构建 struct

使用 ConvertFrom-Json 后,Powershell 访问 JSON 中的嵌套对象

如何在golang中获取 struct 的json字段名称?

如何在不解析的情况下在javascript中同步包含JSON数据?

JSON 到 JSON 转换器

我应该如何处理 JSON 中的 HATEOAS 链接和引用?

如何在 Django JSONField 数据上聚合(最小/最大等)?

如何转换为 D3 的 JSON 格式?

类型是接口或抽象类,不能实例化

为什么 jqXHR.responseText 返回字符串而不是 JSON 对象?