如何解析带有mongoexport在Scala中导出的日期的json?

时间:2012-03-18 05:52:08

标签: scala mongodb casbah

鉴于此代码示例:

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

我可以做些什么来使用Casbah在Scala中正确解析?

2 个答案:

答案 0 :(得分: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]

答案 1 :(得分:-1)

检查此拼写错误,这是您应该传递的有效JSON

var json = '
    {
        "date": {
            "$date": 1327064009959
        }
    }';