先日,こんなエントリー を上げたところ,id:xuwei san に scala.util.parsing.json.JSON
は Scala 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種類ぐらいありそうな感じ.特にこのあたりが気になる.
- Argonaut
- spray-json
まとめ
scala.util.parsing.json.JSON
を使うのはやめよう!
関連エントリー
標準ライブラリのJSONはScala2.11から非推奨になるので使ってる人は今すぐ使うのやめましょう - scalaとか・・・
sjsonの使い方 - na