4

私が使用しているインポートは次のとおりです。

import com.novus.salat._
import com.novus.salat.global.ctx
import net.liftweb.json._
import com.mongodb.casbah.Imports._

私は2つのケースクラスを持っています:

case class BigThing (thing: Thing  )
case class Thing(x:Int, y:Int)

私のグレーターは、モノだけをグレーティングするときに、フィールドの名前を持つ DBObject を正しく生成します。

implicit val formats = DefaultFormats

val t = parse("""{"x":5, "y":6}""").extract[Thing]
println("t " + t)
val dboT = grater[Thing].asDBObject(t)
println("dboT " + dboT)

これは以下を出力します:

 t Thing(5,6)
 dboT { "_typeHint" : "Thing" , "x" : 5 , "y" : 6}

しかし、BigThing をグレーティングすると、Thing のフィールド名が配列に変換されます。

  val bt = parse(""" { "thing": {"x":5, "y":6} } """).extract[BigThing]
  println("bt " + bt)
  val dboBt = grater[BigThing].asDBObject(bt)
  println("dboBt " + dboBt)

これは以下を出力します:

bt BigThing(Thing(5,6))
dboBt { "_typeHint" : "BigThing" , "thing" : [ 5 , 6]}

これはバグですか?私は何か間違ったことをしていますか?


私の build.sbt フィールドはこれです:

name := "hello"

resolvers ++= Seq(
  "ScalaNLP Maven2" at "http://repo.scalanlp.org/repo",
  "Spray repo" at "http://repo.spray.cc/",
  "Typesafe repo" at "http://repo.typesafe.com/typesafe/releases/",
  "Sonatype OSS Snapshots" at "https://oss.sonatype.org/content/repositories/snapshots")

libraryDependencies ++= Seq(
  "com.novus"                  %% "salat-core"      % "1.9.1-SNAPSHOT",
  "cc.spray"                   %% "spray-json"      % "1.1.1",
  "com.mongodb.casbah"         %  "casbah_2.9.1"    % "2.1.5-1",
  "net.liftweb"                %% "lift-json"       % "2.5-SNAPSHOT"
)
4

0 に答える 0