Almacenamiento de una extracción de JSON in Carrera
Pregunta
Estoy tratando de guardar los datos parced con la extracción de datos JSON Montacargas y guardarlo en la base de datos (a través de asignador) pero no puedo encontrar dónde conectar el snippit al asignador. Los código es el siguiente.
Aquí está una snippit prueba.
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]
}
Y aquí una muestra de modelo.
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]
He mirado a través de mi copia impresa del libro, el libro electrónico actualizado, y el grupo de Google en vano. Sólo estoy buscando un poco de ayuda o tal vez un ejemplo de código para que me señale en la dirección correcta.
Solución
Para crear instancias de una clase modelada utilizando Object.create, utiliza la aplicación de métodos de la clase objetos para establecer los valores de la instancia, y luego persistir por llamar a save.
Decir que quería establecer estos valores:
sample1: "Fishsticks"
sample2: "InYour"
sample3: "Mouth"
A continuación, desea guardar el modelo de la base de datos.
Ya que se puede cadena de llamadas a funciones, usted puede hacer esto de manera muy sucinta:
// Create the instance
var newDone = newDone.create
// Set it's instance variables
newDone.sample1("Fishsticks").sample2("InYour").sample3("Mouth")
// Persist it
newDone.save
Así que, una vez que haya analizado sintácticamente los datos JSON, puede utilizar usar el formato anterior a persistir en su base de datos.