web-dev-qa-db-ja.com

org.json.JSONObjectとGsonライブラリJsonObject

この2つのクラスの違いは何ですか?

誰かがGsonライブラリを使用する場合は、com.google.json.JsonObject以上org.json.JSONObject

誰もがこれらの2つの選択の長所と短所をリストできますか?

21
iamcrypticcoder

多くのJSON実装が市場で入手可能であり、それらのほとんどはオープンソースです。それぞれに特定の利点と欠点があります。

  • Google GSON
  • ジャクソン
  • org.jsonなど.

Google GSONクリック 公式文書

  • JavaオブジェクトをJSONに、またはその逆に変換する単純なtoJson()およびfromJson()メソッドを提供する
  • 既存の変更不可能なオブジェクトをJSONとの間で変換できるようにします
  • Java Genericsの広範なサポート
  • オブジェクトのカスタム表現を許可する
  • 任意の複雑なオブジェクトをサポートします(深い継承階層と汎用タイプの広範な使用)

Jacksonクリック 公式文書

  • ストリーミングAPIまたは増分解析/生成:JSONコンテンツを個別のイベントとして読み書きします
  • ツリーモデル:JSONドキュメントのメモリ内の可変ツリー表現を提供します
  • データバインディング:JSONとPOJOの相互変換

いくつかの比較ブログはここをクリック blogs1blog2

私は個人的に、GSON対JacksonとSimple JSONを使用して、シリアライゼーションとデシリアライゼーションのベンチマークを行いました。

  • 非常に小さなオブジェクト:Google gsonはJacksonやSimple JSONよりも高速に動作します
  • ラージオブジェクト:Google gsonはJacksonやSimple JSONよりも高速に実行されます
10
GrabNewTech

主な違いは次のとおりです。

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

2)org.jsonは、シンプルなツリースタイルのAPIです。最大の弱点は、解析する前にJSONドキュメント全体を文字列にロードする必要があることです。大きなJSONドキュメントの場合、これは非効率的な場合があります。

3)org.json実装の最大の弱点はJSONExceptionです。 JSONのすべての要素の周りにtry/catchブロックを配置する必要があるのは、単に便利ではありません。

4)Gsonは、AndroidでのJSON解析に最適なAPIです。バイナリサイズは非常に小さく(200 KiB未満)、高速データバインドを行い、シンプルで使いやすいAPIを備えています。

5)GSONとJacksonは、Java世界でJSONデータを管理するための最も一般的なソリューションです。

8
Mehmood Memon