dispatchでHTTP通信。as.json4s.Jsonするとjson4sになる
val dispatchVersion = "0.11.0"
libraryDependencies ++= Seq(
"net.databinder.dispatch" %% "dispatch-core" % dispatchVersion,
"net.databinder.dispatch" %% "dispatch-jsoup" % dispatchVersion,
"net.databinder.dispatch" %% "dispatch-json4s-native" % dispatchVersion,
"org.slf4j" % "slf4j-log4j12" % "1.7.6"
)
import dispatch._, Defaults._
import org.json4s._, native.JsonMethods._, JsonDSL._
// json取得
val urlstr = "https://api.github.com/repos/ixxa/procon-lib"
val json = Http(url(urlstr) OK as.json4s.Json).apply
/*
↑json
{
"id": 17081970,
"name": "procon-lib",
"full_name": "ixxa/procon-lib",
"owner": {
"login": "ixxa",
"id": 3647920,
...
*/
// XPath方式が楽
val name = compact(render(json \\ "name")) // => "procon-lib"
val ownerID = compact(render(json \ "owner" \ "id")) // => 3647920
- dispatchはrebootとclassicがある。rebootが新しいが資料が少なくてつらい
- dispatchでHttp()呼ぶときなんか警告が出る。けど動いてるからとりあえず放置
- json4sはnativeとjacksonがある。違いがよくわからない
- json4sを依存関係に入れてないけどdispatch-json4s-nativeが勝手に持ってきてくれてる?