JSONのいくつかの既存のライブラリーを検索した後、最終的に次の2つになりました。
- ジャクソン
- Google GSon
私はGSONに少し不満ですが、ネットで言うと、GSonは特定の天体のパフォーマンスの問題(2009年9月現在)に悩まされています。
私は私の比較を続けています。その間、私は私の決心をするための助けを探しています。
JSONのいくつかの既存のライブラリーを検索した後、最終的に次の2つになりました。
私はGSONに少し不満ですが、ネットで言うと、GSonは特定の天体のパフォーマンスの問題(2009年9月現在)に悩まされています。
私は私の比較を続けています。その間、私は私の決心をするための助けを探しています。
回答:
私は先週、この調査を行い、同じ2つのライブラリーを作成しました。私はSpring 3(デフォルトのJsonビュー ' JacksonJsonView 'でJacksonを採用しています)を使用しているので、同じことをするのがより自然でした。2つのlibはほとんど同じです...最後に、それらは単にjsonファイルにマップします!:)
とにかく、ジャクソンは+のパフォーマンスを持っていると私にとって非常に重要です。彼らのウェブページからわかるように、プロジェクトは非常に活発でもあり、それも非常に良い兆候です。
JacksonとGsonは、実際のデータバインディングサポートに関する最も完全なJava JSONパッケージです。他の多くのパッケージは、プリミティブなMap / List(または同等のツリーモデル)バインディングのみを提供します。どちらもジェネリック型を完全にサポートしているだけでなく、多くの一般的なユースケースに十分な構成可能性を備えています。
私はジャクソンをよく知っているので、ジャクソンがGsonよりも完全にサポートしていると思ういくつかの側面があります(Gsonの機能を見逃した場合の謝罪)。
Gson 1.6には、低レベルのストリーミングAPIと、Jacksonよりも実際に高速な新しいパーサーが含まれています。
上記ですでに与えられた他の回答に追加します。大文字小文字の区別が重要な場合は、Jacksonを使用してください。Gsonは、キー名の大文字と小文字を区別しませんが、jacksonはサポートします。
ここに2つの関連リンクがあります
(いいえ)Gsonでの大文字と小文字の区別のサポート: GSON:Jsonから大文字と小文字を区別しない要素を取得する方法?
Jacksonでの大文字と小文字の区別のサポート https://gist.github.com/electrum/1260489
MapperFeature.ACCEPT_CASE_INSENSITIVE_PROPERTIES
、Jackson 2.5で追加された、大文字と小文字を区別しないプロパティの正式なサポートがあります。そのため、カスタムコードを追加する必要はありません。
GSonはJAXBをサポートしていないようです。JAXB注釈付きクラスを使用してJSONメッセージを作成または処理することにより、同じクラスを共有して、Spring MVCを使用してRestful Webサービスインターフェースを作成できます。