json4s对案例类的回应

时间:2016-03-04 12:12:24

标签: scala class case json4s

我得到了这个json响应,如何为 page_views 创建Scala案例类?

"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
  },

3 个答案:

答案 0 :(得分:1)

首先定义您想要的案例类。让我们说它是case class PageView(date:myDateType,numberViews:Long)之类的东西。然后,您不会陷入基本情况,即您收到的json有明确写入的字段datenumberViews,例如{"date":"xxx","numberViews":123}。所以使用json4s它不足以创建一个案例类并让它完成其余的工作,你将不得不编写一个自定义(de)序列化器(他们有一个例子ember-inspector,搜索'序列化器'页面上。)

答案 1 :(得分:1)

经过多次尝试,我能够让它发挥作用。我使用Map绑定到JSON字段。

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

答案 2 :(得分:0)

您可以跟进this tutorial,其中介绍了如何将json字符串解析为模型。它还介绍了您可能需要应用于从json转换到案例类

的一些常规转换

但你的情况有点奇怪,不应该是page_views包含/是一个数组吗?如果您不知道哪些字段在哪里,您如何处理page_views json对象?