Json/Gson のチュートリアルを読んでいるときに、ほとんどの人がファイルを文字列としてダウンロードし、その文字列を JSON で解析することを好むことに気付きました。ただし、ほとんどの XML チュートリアルでは、InputStream を使用して直接解析することを好みます。
両者の違いはなぜですか?ベスト プラクティスとは何ですか?違いはありますか?
Json/Gson のチュートリアルを読んでいるときに、ほとんどの人がファイルを文字列としてダウンロードし、その文字列を JSON で解析することを好むことに気付きました。ただし、ほとんどの XML チュートリアルでは、InputStream を使用して直接解析することを好みます。
両者の違いはなぜですか?ベスト プラクティスとは何ですか?違いはありますか?
XML ユーザーが学んだ教訓は、メモリ内の大きなオブジェクト ツリーは大量のメモリを占有する可能性があるということです。
JSON 解析ツリーは、本質的に XML よりも少ないメモリを消費するわけではありませんが、通常はより単純です。XML DOM は、たとえば GSON JsonObject と比較して非常に機能的です。GSON は (私にはわかりませんが) 必要なものだけをロードするストリーミング パーサー (XML の SAX に似ています) を使用する可能性があります。
しかし、私が言おうとしているのは、それ以来私たちが学んできたということです。通常、JSON が文字列として読み込まれる理由としては、パーサーがより効率的である、ほとんどの場合、完全な DOM よりも少ない機能が必要である、ハードウェアがより強力である、JSON ファイルが通常より短い、プログラマーが怠惰であるなどがあります。
とは言うものの、1 つの文字列に効率的に格納するには大きすぎる JSON データ セットを複雑な方法で処理する必要があることに気付いたときに、この投稿を見つけました。そうすべきではありませんが、JsonParser.parse() には InputStream を受け取ることもできる実装があることに感謝しています。