嵌入式JSON对象未使用fromJSON保存在BsonRecordListField中

时间:2012-07-16 23:01:19

标签: scala mongodb lift bson

我正在使用lift-mongodb-record 2.4来管理RESTo JSON Web服务的MongoRecords。一切都运行得很好,除了我遇到的一个问题:嵌入式BsonRecordListFields不会自动保存。

这是我的测试-JSON:

{"name":"test","control_points":[{"dx":64,"dy":97},{"dx":358,"dy":64},{"dx":211,"dy":80.5}]}

但是通过println(Artifact.fromJSON(request.body).get)打印模型只会打印

class com.test.model.Artifact={name=test, control_points=}

这些是我的模型类:

class ControlPoint private () extends BsonRecord[ControlPoint] {
  def meta = ControlPoint
  object dx extends DoubleField(this)
  object dy extends DoubleField(this)
}

object ControlPoint extends ControlPoint with BsonMetaRecord[ControlPoint]

class Artifact private () extends MongoRecord[Artifact] with ObjectIdPk[Artifact] {
  def meta = Artifact
  object name extends StringField(this, 1024)
  object control_points extends BsonRecordListField(this,ControlPoint)
}
object Artifact extends Artifact with MongoMetaRecord[Artifact] {}

为什么嵌入的东西没有保存?我在这里想念什么吗?

非常感谢! 马丁

1 个答案:

答案 0 :(得分:1)

正如lift mailing list lift-json所指出的那样,将数字解析为整数,因为它们没有小数点。我刚刚将字段更改为IntField,并在客户端通过parseInt将所有日期解析为整数。