LoginSignup
12
10

More than 5 years have passed since last update.

JavaのTOMLライブラリ比較

Last updated at Posted at 2015-02-11

忙しい人のまとめ

今はまだ使わない方がいいかも。

ライセンス等比較

# 名前 作者 Mavenで依存性解決して使える(野良repo) Maven Centralに上がってる ライセンス
1 jtoml @agrison × MIT
2 jtoml @asafh × × Apache2
3 toml4j @johnlcox × × Apache2
4 toml4j @mwanji MIT

同じ名前のが2つずつあってカオス。
この時点で4しか使う気になれんけど、一応全部試してみる。

やること

TOML公式のTOMLのサンプルをファイルに保存して、それをパースして値を取ったりしてみる。
https://github.com/toml-lang/toml#example

検証コードはGroovy Scriptで実施。

各ライブラリ共通点

  • TOMLを読み込んでgetStringやらgetDateやらで値を取り出す
@Grab('com.moandjiezana.toml:toml4j:0.3.1')
import com.moandjiezana.toml.Toml

Toml toml = new Toml().parse(new File("sample.toml"))
println toml.getString("servers.beta.ip")
  • Datetimeがうまく処理出来ない。公式サイトの説明では、RFC 3339形式となっているが、1979-05-27T00:32:00.999999-07:00はどのライブラリでもパースエラーになった。せめて公式サイトに載ってる例くらいは処理出来て欲しい

気になったところ

toml4j(by mwanji)

最初の比較表でも分かるとおり、Maven Centralに上がっている。これにコントリビュートするのが一番楽そう。

jtoml(by agrison)

唯一シリアライズが出来るのが特徴。しかし、それを実行するとエラーになる。。

その他

Datetime含んでいるだけでエラーになってつらい。

@Grab('com.leacox:toml4j:1.0.0-SNAPSHOT')
import com.leacox.toml4j.Toml

println Toml.from('dob=1979-05-27T07:32:00-08:00').getAsString('dob')

// exception occurred!
12
10
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
12
10