web-dev-qa-db-ja.com

Android JSONObjectとGSON

AndroidでJSON文字列を解析するためのJSONObjectとGSONの違いを理解できません。

誰かが説明できますか?

26
May13ank

GSONは、オブジェクト定義を使用して、目的のタイプのオブジェクトを直接作成できます。 JSONObjectは手動で解析する必要があります。それが主な違いです。

35
Tim

他の人が言ったように、GSONJSONから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、ただし遅い)、または別の解決策を見つける。

4
Tech Engineer

ティムが正しいと言っていることも、

Gsonは、AndroidでのJSON解析に最適なAPIです。バイナリサイズが非常に小さく(200 KiB未満)、高速なデータバインディングを実行し、シンプルで使いやすいAPIを備えています。 Androidの組み込みJSONライブラリも優れています。 JSONをあまり実行しておらず、データバインディングが必要ない場合は、これらを使用する必要があります。

2
manDroid

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にコピーして貼り付け、どちらか一方を最適化する際に同期を保つようにしています。

0
Mubarak