Json4s を使ってみた

先日,こんなエントリー を上げたところ,id:xuwei san に scala.util.parsing.json.JSONScala 2.11 から非推奨になるっていう指摘を頂いた.確かに昨日 Scala 2.11.0 がリリースされたけど,Scaladoc を見ると JSON の記述がなくなってるし,このプルリクみると,@deprecated にされてるのがわかる.

SI-6811 Deprecate scala.util.parsing.json by soc · Pull Request #2581 · scala/scala · GitHub

Json4s を使ってみた

Json4s by json4s
json4s/json4s · GitHub

とりあえず,単純に使えそうな Json4s を使ってみた.特に難しい書き方などはなく,parse するだけでOK.ちなみにデフォルトだと AST (Abstract Syntax Tree) で返ってくるので,一般的な型で使いたい場合は parse.values すれば Map で戻ってくる.なお,整数値は java.math.BigInteger 型になっている.

import org.json4s._
import org.json4s.native.JsonMethods._
object MyJsonParser extends App {
  val json = """{"name": "kakakakakku", "intval": 10000, "doubleval": 1234.5}"""
  println(parse(json))
  println(parse(json).values)
}
JObject(List((name,JString(kakakakakku)), (intval,JInt(10000)), (doubleval,JDouble(1234.5))))
Map(name -> kakakakakku, intval -> 10000, doubleval -> 1234.5)

他にも気になってるライブラリ

ちなみに,Json4s 以外にもライブラリはたくさんあって,JSON library for Scala - Stack Overflow を見るだけでも,5種類ぐらいありそうな感じ.特にこのあたりが気になる.

まとめ

scala.util.parsing.json.JSON を使うのはやめよう!

関連エントリー

標準ライブラリのJSONはScala2.11から非推奨になるので使ってる人は今すぐ使うのやめましょう - scalaとか・・・
sjsonの使い方 - na