Вопрос

Я пытаюсь сохранить данные, преобразованные с помощью извлечения данных Riftts JSON и сохранить их в базе данных (через Mapper), но я не могу найти, где подключить сонамент к Mapper. Код выглядит так.

Вот тестовый фрагмент.

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 безрезультатно. Я просто ищу помощь или, может быть, пример кода, чтобы указать мне в правильном направлении.

Это было полезно?

Решение

Вы создаете экземпляры моделируемого класса с использованием object.create, используйте методы применения объектов класса для установления значений экземпляра, а затем сохранять, вызывая сохранение.

Скажем, вы хотели установить эти значения:

  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