質問

LiftsのJSONデータ抽出が付いたデータを保存し、(Mapper経由で)データベースに保存しようとしていますが、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グループを調べました。正しい方向に私を指すための助けやコードの例を探しているだけです。

役に立ちましたか?

解決

object.createを使用してモデル化されたクラスのインスタンスを作成し、クラスのオブジェクトの適用方法を使用してインスタンスの値を設定し、[Saveを呼び出すこと]を実行します。

これらの値を設定したかったとします:

  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