Моя база данных выглядитScala Salat Deserialization: как получить карту [String, Number]?
[
{
name: "domenic",
records: {
today: 5,
yesterday: 1.5
}
},
{
name: "bob",
records: { ... }
}
]
Когда я пытаюсь запросы, как
val result: Option[DBObject] = myCollection.findOne(
MongoDBObject("name" -> "domenic")
MongoDBObject("records" -> 1),
)
val records = result.get.getAs[BasicDBObject]("records").get
grater[Map[String, Number]].asObject(records)
он терпит неудачу (во время выполнения!) С
GRATER GLITCH - unable to find or instantiate a grater using supplied path name
REASON: Class scala.collection.immutable.Map is an interface
Context: 'global'
Path from pickled Scala sig: 'scala.collection.immutable.Map'
Я думаю, что я мог бы сделать эту работу путем создания класс case, единственным полем которого является Map[String, Number]
, а затем получает его собственность. Это действительно необходимо?
«Номер» - это единственный способ работать с JSON в моем коротком опыте, поскольку в противном случае он генерирует исключение, когда у вас есть дробные числа (например, «[45.4, 45.6, 45.8, 46, 46.2]»). – Domenic
Можете ли вы показать, как будет выглядеть код 'getAs'? – Domenic