AndroidでJSON文字列を解析するためのJSONObjectとGSONの違いを理解できません。
誰かが説明できますか?
GSONは、オブジェクト定義を使用して、目的のタイプのオブジェクトを直接作成できます。 JSONObjectは手動で解析する必要があります。それが主な違いです。
他の人が言ったように、GSON
はJSON
からPOJO
へのマッピングをはるかに簡単にするはずですが、最新のGSON
バージョン(私が書いているように、2.2.2)最新のAndroid API 17(Android 4.2))に深刻な問題があります。
詳細については、これを確認してください: http://code.google.com/p/google-gson/issues/detail?id=496
ここで新しいプロジェクトを実行していて、Android 4.2と互換性があるようにしたい場合は、古いGSON
を使用します(1.7.1はAndroid 4.2、ただし遅い)、または別の解決策を見つける。
ティムが正しいと言っていることも、
Gsonは、AndroidでのJSON解析に最適なAPIです。バイナリサイズが非常に小さく(200 KiB未満)、高速なデータバインディングを実行し、シンプルで使いやすいAPIを備えています。 Androidの組み込みJSONライブラリも優れています。 JSONをあまり実行しておらず、データバインディングが必要ない場合は、これらを使用する必要があります。
Androidには2つのJSON APIがあります。
org.jsonは、シンプルなツリースタイルのAPIです。最大の弱点は、解析する前にJSONドキュメント全体を文字列にロードする必要があることです。大きなJSONドキュメントの場合、これは非効率的です。 http://developer.Android.com/reference/org/json/package-summary.html
Android.util.JsonReader/JsonWriterは、低レベルのストリーミングAPIです。これらは効率的ですが、データバインディングを実行しないため、これらを使用するには定型コードを記述する必要があります。これらはAndroid 3+でのみ使用できます。以前のバージョンのAndroidの場合、同じAPIがGsonのストリームパッケージでスタンドアロンで使用できます。 http: //developer.Android.com/reference/Android/util/JsonReader.html
GsonのJsonReaderとJsonWriterは、AndroidのJsonReaderとJsonWriterから派生しています。私は文字通りAndroidからGsonにコピーして貼り付け、どちらか一方を最適化する際に同期を保つようにしています。