2016-03-04 61 views
1

我得到這個json響應,如何爲page_views創建Scala案例類?json4s響應案例類

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

回答

1

經過多次嘗試,我能夠使它工作。我使用Map綁定到JSON字段。

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

首先定義你想要的案例類。我們說這就像case class PageView(date:myDateType,numberViews:Long)。那麼你就不會陷入這樣的基本情況:你收到的json有明確寫入的字段datenumberViews,例如{"date":"xxx","numberViews":123}。因此,使用json4s不足以創建一個case類並讓它完成剩下的工作,您將不得不編寫一個自定義(de)序列化器(他們有一個示例here,在頁面上搜索'Serializer')。

+0

給定JSON對象是無數組。因此,所描述的方法將不起作用:''page_views':{ 「2015-12-30T21:30:00 + 05:30」:4,...} // object'。只有在''page_views'時纔有效:[ {「2015-12-30T21:30:00 + 05:30」:4},...]' –

+0

您將解析json對象並將其反序列化爲一個'List通過循環其「鍵」(不確定這是否是正確的單詞,但在這種情況下,它是表示日期的字符串),例如'mapField'。 – Esardes

0

您可以跟進this tutorial,其中涵蓋了如何將json字符串解析到您的模型。它還涵蓋了一些常見的轉換,你可能需要申請從json轉換到你的case class

但你的情況有點奇怪,不應該page_views包含/是一個數組?如果你不知道哪些字段在裏面,你怎麼能處理page_views json對象?