我正在尝试使用Lifts的JSON数据提取来保存数据,并将其保存到数据库(通过映射器),但我找不到将snippit连接到映射器的位置。代码看起来像这样。

这是一个测试snippit。

package com.testjson.snippet

import dispatch._
import net.liftweb.json.JsonParser._
import java.io.{ByteArrayOutputStream}
import com.testjson.model.Done

class HelloWorld {
def howdy = <span>Welcome to hello-lift at {new _root_.java.util.Date}</span>
val http = new Http
val bos = new ByteArrayOutputStream
val myRequest = new Request("http://testing.com/folder/file.json")
val rawdata = http(myRequest >>> bos)
val bs = bos.toString

val json = parse(bs)

implicit val formats = net.liftweb.json.DefaultFormats

case class One(sample1: String, sample2: String, sample3: String)
case class Two(samplea: String, sampleb: String, samplec: String, sampled: String)
case class Three(alpha: Int, beta: Int, charlie: String, delta: String)
case class Done(notice: List[One], header: List[Two], data: List[Three])

json.extract[Done]

}

在这里,样本模型。

package com.testjson.model

import net.liftweb.http.SHtml
import net.liftweb.common._
import net.liftweb.mapper._


class Done extends LongKeyedMapper[Done] with IdPK {

def getSingleton = Done

object sample1 extends MappedPoliteString(this, 12)
object sample2 extends MappedPoliteString(this, 12)
object sample3 extends MappedPoliteString(this, 56)
object samplea extends MappedPoliteString(this, 12)
object sampleb extends MappedPoliteString(this, 12)
object samplec extends MappedPoliteString(this, 56)
object alpha extends MappedPoliteString(this, 56)
object beta extends MappedInt(this)
object charlie extends MappedInt(this)
object delta extends MappedPoliteString(this, 56)

}

object Done extends Done with LongKeyedMetaMapper[Done]

我已经浏览了本书的打印副本,已更新的电子书和Google组无济于事。我只是在寻找一些帮助,或者也许是一个代码示例,以指向我的正确方向。

有帮助吗?

解决方案

您可以使用对象创建建模类的实例。

说您想设置这些价值:

  sample1: "Fishsticks"
  sample2: "InYour"
  sample3: "Mouth"

然后,您需要将模型保存到数据库中。

由于您可以链接呼叫,因此您可以简洁地执行此操作:

// Create the instance
var newDone = newDone.create

// Set it's instance variables
newDone.sample1("Fishsticks").sample2("InYour").sample3("Mouth")

// Persist it
newDone.save

因此,一旦解析了JSON数据,就可以使用上面的格式将其持续到数据库中。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top