ファイルからアプリケーションにデータをインポートする必要があります。明らかな選択肢は、XML と JSON です。JSON は軽量で、Jackson で解析すると優れたパフォーマンスが得られると聞いたことがあります。しかし、JiBX for XML は高速で、XMLpull を使用して優れたパフォーマンスを発揮するとも聞いています。どのオプションを選ぶべきか、またその理由を知りたいです。XML と JiBX、JSON と Jackson の速度を比較できますか? また、Google Gson が JSON 解析で Jackson よりも優れているかどうかも知りたいです。
3 に答える
Json は軽量です。大きなドキュメントを使用する場合は、Json with Jackson を使用します。
この記事で優れた説明が提供されています(特に注意を読んでください:)。あなたが持っているxml
DOM、PULL、SAX などのさまざまなタイプがありますが、私の知る限り、JSON が最適です。大型用
ドキュメントは、Jackson を優先します。http://www.javabeat.net/2011/05/androids-json-parser/
ジャクソンとグソンのために。このリンクをちらりと見てください。
したがって、xml と json を比較するときは、android の軽量データであるため、常に json を使用することをお勧めします。そのため、データの読み込みと表示が高速になります。そしてグソン、
プロジェクトによって異なります。上記リンク比較をご覧ください。
純粋なパフォーマンスでは、JSON が JiBX よりも高速になることに同意します。
ツールの選択は、転送するデータによって異なります。
具体的なデータ定義がある場合は、JiBX を使用します。JiBX は、複雑なデータ オブジェクトの作成と取得に特に優れています。JiBX は、データが正しいことを確認し、Java オブジェクトとの間でデータを自動的に変換します。
より柔軟性が必要な場合は、JSON を使用してください。JSON は、データが正しいかどうかを確認しません。
たとえば、JiBX でオブジェクトを作成する場合:
Person person = new Person();
person.name = "Don";
person.age = 52;
JiBX で情報を取得する場合:
System.out.println("Name: " + person.name);
System.out.println("Age: " + person.age);
JSON では、コードは次のようになります。
JSONObject person = new JSONObject();
person.put("name", "Don");
person.put("age", new Integer(52));
送信された情報を取得するには:
String name = person.get("name");
long age = person.get("age");
ご覧のとおり、JiBX コードの方が読みやすくなっていますが、スキーマ定義がないため、JSON の方が柔軟です。
どちらのソリューションでも、コードは Android クライアントと Java サービス/サーバーでまったく同じです。
これが役立つことを願っています。
Don Corley - JiBX 寄稿者
さらに、Jackson は必要に応じて XML も実行できます。https://github.com/FasterXML/jackson-dataformat-xmlを使用します。
また、Jackson+JSON がどの XML ベースのソリューションよりも高速であることに同意します ( https://github.com/eishay/jvm-serializersに従って)。JibX は悪くなく、おそらくほとんどの用途で十分に高速です (他の多くのオプションと同様)。しかし、スピードがあなたのものなら、ジャクソンはあなたが言及した選択肢よりも速いでしょう.