我有數據來從MongoDB的,看起來像這樣回:如何爲混合類型的嵌套列表指定salat DAO模型?
> db.foo.findOne()
[
{
"_id" : "some string",
"bar" : [
[
14960265,
0.5454545454545454
],
[
30680,
0.36363636363636365
],
[
12852625,
0.09090909090909091
]
],
}
]
的bar
屬性包含未知大小的列表,每個項目其中是包含一個Int和雙長度爲2的列表。在Scala中,我將把它表示爲List [(Int,Double)]。
我該如何編寫這個結構的模型來與Salat一起使用?
禮拜不做元組,所以我嘗試:
case class FooEntry(a: Int, b: Double)
case class Foo(_id: String, bar: List[FooEntry])
,但得到:
java.lang.IllegalArgumentException異常:BasicBSONList只能 數字鍵,不工作:[一]
也試過:
case class Foo(_id: String, sps: List[Any])
,但得到:
java.lang.ClassCastException:com.mongodb.BasicDBList不能轉換 到scala.collection.immutable.List
顯然,數據可以存儲在一個更好的形式,用一個對象而不是長度爲二的數組。但鑑於這是我的,有沒有一種使用薩拉特進行反序列化的好方法?謝謝!
非常感謝解釋和替代品的指針。我同意數組成員可以更好地表示爲對象而不是數組。 – mrjf 2013-02-14 18:03:58