1
我想要生成一些使用json4s庫的json,它使用基於嵌套元組結構的dsl構建json。我有我想要斯卡拉Seq
能夠轉換成一個元組的嵌套像這樣:來自序列的斯卡拉動態元組類型構造
// scala Seq
val s = Seq("a", "b", "c", "d")
val rootItem = "id" -> 1234
// desired json
{
"a" : {
"b" : {
"c" : {
"d" : {
"id" : 1234
}
}
}
}
}
如果我強迫它忽略類型我能產生期望的元組結構如下:
// yields ("a", ("b", ("c", ("d", ("id", 1234)))))
s.foldRight[Any](rootItem)(_ -> _)
但由於結果的類型現在表示爲Any
將此寫入json的隱式轉換不會觸發(並且在顯式調用時引發異常),儘管實際類型是正確的。我對如何以類型安全的方式構建這個數據結構感到不知所措。理想情況下,我想要一個能夠適當地建立類型的解決方案,但我知道這可能是不可能的,因爲它只需要運行時提供的信息(列表的長度)。我知道scala支持遞歸類型,似乎可能適合賬單,但在這種情況下我無法理解如何使用它們,也不知道它們對於「真實」系統是否安全。
美麗,這正是我想要的,比我想象的要簡單得多。 –