Как разобрать json с датой, экспортируемой mongoexport в Scala? - PullRequest
0 голосов
/ 18 марта 2012

Данный пример кода:

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?

Ответы [ 2 ]

0 голосов
/ 18 марта 2012

Есть решение, которое мне не очень нравится, ты:

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]
0 голосов
/ 18 марта 2012

Проверьте эту опечатку, это действительный JSON, который вы должны передать

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