Frage

Ich versuche, Daten mit der JSON -Datenextraktion von Liften zu speichern und in der Datenbank (über Mapper) zu speichern, aber ich kann nicht finden, wo der Snippit mit dem Mapper verbindet. Der Code sieht so aus.

Hier ist ein Test -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]

}

Und hier ein Beispielmodell.

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]

Ich habe meine Druckkopie des Buches, das aktualisierte eBook und die Google -Gruppe ohne Erfolg durchgesehen. Ich suche nur Hilfe oder vielleicht ein Code -Beispiel, um mich in die richtige Richtung zu verweisen.

War es hilfreich?

Lösung

Sie erstellen Instanzen einer modellierten Klasse unter Verwendung von Object.create, verwenden die Anwendenmethoden der Objekte der Klasse, um die Werte der Instanz festzulegen, und bestehen dann durch Aufrufen von Speichern.

Angenommen, Sie wollten diese Werte festlegen:

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

Sie möchten das Modell dann in der Datenbank speichern.

Da Sie Funktionsaufrufe ketten können, können Sie dies sehr prägnant tun:

// Create the instance
var newDone = newDone.create

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

// Persist it
newDone.save

Sobald Sie Ihre JSON -Daten analysiert haben, können Sie das obige Format verwenden, um es in Ihre Datenbank zu bestehen.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top