json4s 对案例的响应 class
json4s response to case class
我收到此 json 响应,如何为 page_views 创建 Scala Case Class ??
"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
},
首先定义你想要的案例class。假设它类似于 case class PageView(date:myDateType,numberViews:Long)
。那么您就不会陷入基本情况,即您收到的 json 具有显式写入的字段 date
和 numberViews
,例如 {"date":"xxx","numberViews":123}
。所以使用 json4s 创建一个案例 class 并让它完成剩下的工作是不够的,你将不得不编写一个自定义(反)序列化器(他们有一个例子 here, 在页面上搜索 'Serializer')。
您可以跟进 this tutorial,其中介绍了如何将 json 字符串解析为您的模型。它还涵盖了您可能需要应用的一些常用转换,以将 json 转换为您的案例 class
但是你的情况有点奇怪,page_views contain/be 不应该是一个数组吗?如果您不知道其中包含哪些字段,如何处理 page_views json 对象?
经过多次尝试,我终于成功了。我使用 Map
绑定到 JSON 字段。
case class Test(page_views: Map[String, Int])
我收到此 json 响应,如何为 page_views 创建 Scala Case Class ??
"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
},
首先定义你想要的案例class。假设它类似于 case class PageView(date:myDateType,numberViews:Long)
。那么您就不会陷入基本情况,即您收到的 json 具有显式写入的字段 date
和 numberViews
,例如 {"date":"xxx","numberViews":123}
。所以使用 json4s 创建一个案例 class 并让它完成剩下的工作是不够的,你将不得不编写一个自定义(反)序列化器(他们有一个例子 here, 在页面上搜索 'Serializer')。
您可以跟进 this tutorial,其中介绍了如何将 json 字符串解析为您的模型。它还涵盖了您可能需要应用的一些常用转换,以将 json 转换为您的案例 class
但是你的情况有点奇怪,page_views contain/be 不应该是一个数组吗?如果您不知道其中包含哪些字段,如何处理 page_views json 对象?
经过多次尝试,我终于成功了。我使用 Map
绑定到 JSON 字段。
case class Test(page_views: Map[String, Int])