Scala / Play:JSON序列化问题

卡瓦列罗

我有一个简单的自定义数据结构,可用于映射数据库的结果:

case class Filter(id: Int, table: String, name: String, Type: String, structure: String)

生成的对象类型为List[Filter],如果将其转换为JSON,则其外观应如下所示:

[
    {
        "id":           1,
        "table":        "table1",
        "name":         "name1",
        "Type":         "type1",
        "structure":    "structure1"
    },
    {
        "id":           2,
        "table":        "table2",
        "name":         "name2",
        "Type":         "type2",
        "structure":    "structure2"
    }
]

现在,当我尝试将对象序列化为JSON时

val result: String = Json.toJson(filters)

我收到类似

No Json deserializer found for type List[Filter]. Try to implement an implicit Writes or Format for this type.

我如何解决这个看似简单的问题而不编写一些荒谬的样板?

我的堆栈是Play 2.2.1,Scala 2.10.3,Java 8 64bit

塞萨梅特

简短答案

只需添加:

implicit val filterWrites = Json.writes[Filter]

更长的答案

如果查看Json.toJson的定义,您将看到其完整签名为:

def toJson[T](o: T)(implicit tjs: Writes[T]): JsValue = tjs.writes(o)

Writes[T]知道如何取aT并将其转换为a JsValue您将需要具有一个隐式对象Writes[Filter],该隐对象知道如何序列化您的Filter实例。好消息是,Play的JSON库带有可Writes[_]为您实例化它们的宏,因此您不必编写无聊的代码即可将case类的字段转换为JSON值。要调用此宏并通过隐式搜索获取其值,请将上面的行添加到您的范围中。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

Scala Play Framework Json序列化器错误

来自分类Dev

Play / Scala如何防止Json序列化空数组?

来自分类Dev

Play / Scala如何防止空数组的Json序列化?

来自分类Dev

Scala Play Framework Json序列化器错误

来自分类Dev

使用Play Framework序列化器将扩展类序列化为Scala中的JSON

来自分类Dev

在Play for Scala中序列化树

来自分类Dev

Play2.2.1框架中的Json Scala对象序列化

来自分类Dev

在Scala Play 2.4中使用自定义Writes将序列化设置为json

来自分类Dev

Scala-播放JSON特征序列化

来自分类Dev

使用Scala Jackson进行JSON反序列化?

来自分类Dev

使用 Jackson 从 JSON 反序列化 Scala 地图字段

来自分类Dev

在Scala / Play中将JSON字符串序列化为JSON

来自分类Dev

在Scala / Play中将JSON字符串序列化为JSON

来自分类Dev

Scala Jackson反序列化

来自分类Dev

Scala通用序列化器PlayFramework

来自分类Dev

任务在 Scala 中不可序列化

来自分类Dev

jQuery表单序列化在Scala Play Framework 2.2的Facebox上不起作用

来自分类Dev

在scala.js中反序列化scala-json

来自分类Dev

在序列化/反序列化 Avro Record 后,在 Scala 中将 java.util.HashMap 转换为 JSON

来自分类Dev

使用 scala Spark 并行重命名 HDFS 文件时出现序列化问题

来自分类Dev

在Play2中将Scala列表序列化为JSON

来自分类Dev

在Scala(Play Framework)中将对象序列化为JSON基本类型

来自分类Dev

在scala中播放json:使用未知字段反序列化json而不会丢失它们

来自分类Dev

使用Spray-json对Scala案例对象进行Json反序列化

来自分类Dev

通过scala-pickling序列化后从json中删除tpe

来自分类Dev

将Java枚举转换为Scala枚举以进行json4s序列化

来自分类Dev

如何使用scala反序列化包含@@的json字符串

来自分类Dev

通过scala-pickling序列化后从json中删除tpe

来自分类Dev

Kafka json反序列化器中的Scala classOf泛型类型

Related 相关文章

  1. 1

    Scala Play Framework Json序列化器错误

  2. 2

    Play / Scala如何防止Json序列化空数组?

  3. 3

    Play / Scala如何防止空数组的Json序列化?

  4. 4

    Scala Play Framework Json序列化器错误

  5. 5

    使用Play Framework序列化器将扩展类序列化为Scala中的JSON

  6. 6

    在Play for Scala中序列化树

  7. 7

    Play2.2.1框架中的Json Scala对象序列化

  8. 8

    在Scala Play 2.4中使用自定义Writes将序列化设置为json

  9. 9

    Scala-播放JSON特征序列化

  10. 10

    使用Scala Jackson进行JSON反序列化?

  11. 11

    使用 Jackson 从 JSON 反序列化 Scala 地图字段

  12. 12

    在Scala / Play中将JSON字符串序列化为JSON

  13. 13

    在Scala / Play中将JSON字符串序列化为JSON

  14. 14

    Scala Jackson反序列化

  15. 15

    Scala通用序列化器PlayFramework

  16. 16

    任务在 Scala 中不可序列化

  17. 17

    jQuery表单序列化在Scala Play Framework 2.2的Facebox上不起作用

  18. 18

    在scala.js中反序列化scala-json

  19. 19

    在序列化/反序列化 Avro Record 后,在 Scala 中将 java.util.HashMap 转换为 JSON

  20. 20

    使用 scala Spark 并行重命名 HDFS 文件时出现序列化问题

  21. 21

    在Play2中将Scala列表序列化为JSON

  22. 22

    在Scala(Play Framework)中将对象序列化为JSON基本类型

  23. 23

    在scala中播放json:使用未知字段反序列化json而不会丢失它们

  24. 24

    使用Spray-json对Scala案例对象进行Json反序列化

  25. 25

    通过scala-pickling序列化后从json中删除tpe

  26. 26

    将Java枚举转换为Scala枚举以进行json4s序列化

  27. 27

    如何使用scala反序列化包含@@的json字符串

  28. 28

    通过scala-pickling序列化后从json中删除tpe

  29. 29

    Kafka json反序列化器中的Scala classOf泛型类型

热门标签

归档