ウェブサイトからコンテンツを読み込むアプリがあります。
すべての読み込み中に約100の記事があります。
以下を見ると、Webからコンテンツをロードするのにどちらの方法が良いか知りたいです。
- 速度
- 互換性(特殊文字などを使用すると、エンコードに問題が発生します)
- あなたの経験
ウェブサイトからコンテンツを読み込むアプリがあります。
すべての読み込み中に約100の記事があります。
以下を見ると、Webからコンテンツをロードするのにどちらの方法が良いか知りたいです。
パフォーマンスを向上させ、帯域幅の消費を抑えるために、JSON を強くお勧めします。
ずっとJSON。Saad のリンクは、この 2 つを比較するための優れたリソースです (+1 から Saad)。
速度
JSON は多くの点でより高速になる可能性があります。まず、構文がはるかに単純であるため、解析と構築がより高速になります。第二に、それははるかに冗長ではありません。これは、回線を介して転送する方が高速であることを意味します。
互換性
理論的には、ここでは JSON でも XML でも問題はありません。文字エンコーディングに関しては、 Unicode を使用する必要があるため、JSON が勝つと思います。XML では好きな文字エンコーディングを使用できますが、パーサーが停止するのを見たことがあります。これは、先頭の行で 1 つのエンコーディングが指定されており、実際のデータが別のエンコーディングにあるためです。
経験
XML を手作りするのははるかに難しいと思います。JSON は任意のテキスト エディターで記述できますが、XML を正しく記述するには特別な XML エディターが必要です。
XML は、プログラムで操作するのがより困難です。パーサーは、名前空間、属性、エンティティ、CDATA など、より複雑に対処する必要があります。したがって、ストリーム ベースのパーサーを使用している場合は、属性、要素の内容、名前空間マップなどを追跡する必要があります。DOM ベースのパーサーは、カスタムの複雑なグラフを生成する傾向があります。オブジェクト (複雑さをモデル化するために必要なため)。確かに、私はストリーム ベースの JSON パーサーを使用したことがありませんが、オブジェクト グラフを生成するパーサーは、自然な Objective-C コレクションを使用できます。
iPhone では、Cocoa に組み込みの XML DOM パーサーはありません (C ベースのパーサーである libxml2 を使用できます) が、iOS 5 では簡単に使用できる JSON パーサーがあります。
要約すると、リンクの両端を制御できる場合は、毎回 JSON を使用します。OS X では、構造化された人間が読める形式のドキュメントが必要な場合は、JSON を使用します。
あなたは「記事」を読み込んでいると言います。リッチ テキスト (斜体や太字など) を含むドキュメントを意味する場合、JSON がオプションであることは明らかではありません。JSON は実際には混合コンテンツを処理しません。
それが純粋に単純な構造化データであり、通信の両端にあるソフトウェアがロック同期を維持するのではなく個別に進化する必要があるなどの複雑さを処理する必要がない場合、JSON はより単純で安価です。 XML の特別な機能や複雑さが必要です。