0

鉴于此代码示例:

import com.mongodb.util.JSON
import com.mongodb.casbah.Imports._
val json = """{"date" : { "$date" : 1327064009959 }}"""
val doc = JSON.parse(json)

我收到此错误:java.lang.ClassCastException: java.lang.Long 无法转换为 java.lang.String

我该怎么做才能在 Scala 中使用 Casbah 正确解析它?

4

2 回答 2

0

有一个解决方案,我不太喜欢,你:

import com.mongodb.util.JSON
import com.mongodb.casbah.Imports._
import scala.util.matching.Regex

val json = """{"date" : { "$date" : 1327064009959 }}"""
val doc = JSON.parse(json)
var regex = new Regex("""\{ "\$date" : (\d+) \}""", "date")
val fixed = regex replaceAllIn (json, m => "\"" + (new DateTime(m.group("date").toLong)) + "\"" )
val doc = JSON.parse(fixed).asInstanceOf[DBObject]
于 2012-03-18T10:47:39.613 回答
-1

检查这个错字,这是您应该传递的有效 JSON

var json = '
    {
        "date": {
            "$date": 1327064009959
        }
    }';
于 2012-03-18T05:57:53.150 回答