目次
インフラ構築と自動化が得意。TerraformとAnsibleでインフラを自動構築するお仕事が多め
工作HardwareHubからのお知らせ
インストール
Json4s を利用します。最新バージョンはこちらから検索できます。
build.sbt (sbt)
libraryDependencies += "org.json4s" %% "json4s-jackson" % "3.3.0"
pom.xml (maven)
<dependency>
<groupId>org.json4s</groupId>
<artifactId>json4s-jackson_${scala.version}</artifactId>
<version>3.3.0</version>
</dependency>
JSON パース
import org.json4s._
import org.json4s.jackson.JsonMethods._
object Main {
def main(args: Array[String]): Unit = {
val json = """{ "numbers" : [1, 2, 3, 4] }"""
val jsonObj = parse(json)
val map = jsonObj.asInstanceOf[JObject].values
println(map) //=> Map(numbers -> List(1, 2, 3, 4))
println(map get "numbers") //=> Some(List(1, 2, 3, 4))
val json2 = """{ "name" : "Toy", "price" : 35.35 }"""
val jsonObj2 = parse(json2)
val map2 = jsonObj2.asInstanceOf[JObject].values
println(map2) //=> Map(name -> Toy, price -> 35.35)
println(map2 get "price") //=> Some(35.35)
}
}
JSON 文字列を生成
import org.json4s.jackson.JsonMethods._
import org.json4s.JsonDSL._
object Main {
def main(args: Array[String]): Unit = {
// リストから JSON 文字列に変換
val list = List[Int](1, 2, 3)
println(compact(render(list))) //=> [1,2,3]
// タプルから JSON 文字列に変換
val tuple = ("name" -> "taro")
println(compact(render(tuple))) //=> {"name":"taro"}
// タプルの結合
println(compact(render(
("name" -> "taro") ~ ("age" -> 20) //=> {"name":"taro","age":20}
)))
// Option 型を利用して if 存在するならば、が記述可能
println(compact(render(
("name" -> Some("taro")) ~ ("age" -> (None: Option[Int])) //=> {"name":"taro"}
)))
// 複雑な例
println(compact(render(
("key" ->
("inner_key" -> "value") ~
("inner_key2" -> List(1, 2, 3)))
))) //=> {"key":{"inner_key":"value","inner_key2":[1,2,3]}}
}
}
0
記事の執筆者にステッカーを贈る
有益な情報に対するお礼として、またはコメント欄における質問への返答に対するお礼として、 記事の読者は、執筆者に有料のステッカーを贈ることができます。
さらに詳しく →Feedbacks
ログインするとコメントを投稿できます。
関連記事
- Scala 文字列の処理書式指定 object Main { def main(args: Array[String]): Unit = { println("%d + %d = %d".format(1, 1, 2)) //=> 1 + 1 = 2 } } 文字列の比較 ヒアドキュメント 他の言語でいう「ヒアドキュメント」のようなものは """ で囲うことで実現できます。 object Main ...
- Scala 日付に関する処理Date クラスを文字列にフォーマット import java.util.Date object Main { def main(args: Array[String]): Unit = { // format は Date に限らない文字列用の機能です。 println("%d-%d-%d" format (1, 1, 1)) //=> 1-1-1 printl...
- 酢豚の基本的な使い方 (sbt)sbt は Scala および Java を主な対象としたビルドツールです。Scala Build Tool の略ではありませんが、Simple Build Tool という明示的な記述も公式ドキュメントなどには見当りません。以下 sbt の基本的な使用例をまとめます。使用した sbt のバージョンは 0.13 です。 公式ドキュメント [sbt 0.13](http://www.scala-sb...
- Scala 関数のサンプルコード「デフォルト引数」および「Unit 型を返す関数」 object HelloWorld { def main(args: Array[String]): Unit = { def myPrint(myArg: String = "default_value") = println(myArg + "!") val result = myPrint() //=> defau...
- Scala 組み込みの制御構造if-else 条件分岐で知られる if-else は三項演算子のようにも使用されます。 object HelloWorld { def main(args: Array[String]): Unit = { val myVal = if (!args.isEmpty) args(0) else "default" println(myVal) } ...