Scala json4s对案例类的响应

Scala json4s对案例类的响应,scala,class,case,json4s,Scala,Class,Case,Json4s,我得到了这个json响应,如何为页面视图创建Scala Case类 "page_views": { "2015-12-30T21:30:00+05:30": 4, "2016-01-08T15:30:00+05:30": 25, "2016-01-13T11:30:00+05:30": 9, "2016-01-13T12:30:00+05:30": 8, "2016-01-14T10:30:00+05:30": 21, "2016-01-21T12

我得到了这个json响应,如何为页面视图创建Scala Case类

"page_views": {
    "2015-12-30T21:30:00+05:30": 4,
    "2016-01-08T15:30:00+05:30": 25,
    "2016-01-13T11:30:00+05:30": 9,
    "2016-01-13T12:30:00+05:30": 8,
    "2016-01-14T10:30:00+05:30": 21,
    "2016-01-21T12:30:00+05:30": 19,
    "2016-01-21T17:30:00+05:30": 4,
    "2016-01-22T17:30:00+05:30": 2,
    "2016-02-02T10:30:00+05:30": 14,
    "2016-02-24T12:30:00+05:30": 11,
    "2016-02-26T09:30:00+05:30": 12
  },

首先定义所需的case类。假设它类似于
案例类页面视图(date:myDateType,numberview:Long)
。这样,您就不会遇到这样的基本情况:您收到的json中有明确写入的
date
numberview
字段,例如
{“date”:“xxx”,“numberview”:123}
。因此,使用json4s创建一个case类并让它完成其余的工作是不够的,您必须编写一个自定义(反)序列化程序(他们在页面上有一个示例,搜索“serializer”)。

您可能会继续讨论如何将json字符串解析到您的模型中。它还涵盖了从json转换到case类时可能需要应用的一些常见转换


但是您的案例有点奇怪,页面视图不应该包含/是数组吗?如果您不知道页面视图json对象中包含哪些字段,那么如何处理该对象?

经过多次尝试,我终于能够让它正常工作。我使用
Map
绑定到JSON字段

case class Test(page_views: Map[String, Int])

给定的JSON对象不是数组。因此,所描述的方法不起作用:
“页面视图”:{“2015-12-30T21:30:00+05:30”:4,…}//object
。只有在
“页面视图”的情况下才有效:[{“2015-12-30T21:30:00+05:30”:4},
您将解析json对象,并通过循环其“键”(不确定这是正确的单词,但在本例中它是表示日期的字符串)将其反序列化为
列表[PageView]
,例如使用
mapField