2015-05-09 75 views
0

我一直在尋找如何在CSV文件中壓扁給定數據的JSON表示。斯卡拉像CSV數據源,以平坦的JSON表示

比方說,CSV的格式爲:

headerFieldName_1, ... headerFieldName_n, 
value_1.1, ... , value_1.n 
value_2.1, ... , value_2.n 
... 
value_m.1, ... , value_m.n 

現在,平JSON我希望得到的是以下幾點:

[ {headerFieldName_1 : value_1.1, ... , headerFieldName_n : value_1.n}, 
    {headerFieldName_1 : value2.1, ... , headerFieldName_n : value_2.n}, 
... 
    {headerFieldName_1 : value_m.1, ... , headerFieldName_n : value_m.n}, 
] 

由於陣列中的每個元素是一個自定義演示文稿的JSON對象,我認爲沒有方便JsValue使用。

我認爲在這種情況下使用Format[x]沒有用處,因爲它僅用於映射鍵/值對的數組。所以也許一些定製的ReadsWrites會更適合這個問題。

回答

0

如果這是你正在尋找的東西,這裏沒有在線,但實現它非常簡單。假設你的文件不是太大(否則JSON是使用一個可怕的格式),您需要:

  1. 讀取文件內容:scala.io.Source.fromFile("your path").getLines
  2. 過程中的第一行獲得頭(鍵)。使用line.split(",")獲得單獨的字段。
  3. 處理剩下的每一行,用所有已知鍵和該行的值組裝一個JSON對象。
  4. 將所有創建的對象追加到JsArray。