0

NSXMLParser と JSON パーサーの長所と短所は何ですか?

どのシチュエーションでどれがいい?

現在、私のアプリは NSXMLParser を使用しています。JSON パーサーの方が効率的であれば移動する予定です。

ありがとう

4

1 に答える 1

1

NSXMLParser基本的に、XML ドキュメント内の特定の要素の発生についてデリゲートに通知する「イベント ドリブン」パーサーです。

イベント ドリブン パーサーは、それ自体では XML ドキュメントの表現を作成しません。要素の実際の処理は、何らかのデリゲートによって行われる必要があります。イベント ドリブン パーサーを適切に利用することは、精巧でエラーが発生しやすく、そのようなタスクに取り組むには経験が必要です。まあ、あなたはそれを知っています。

NSJSONSerialization一方、および私が知っている他のすべてのサードパーティの JSON パーサーは、JSON 入力から基本オブジェクト (NSArrayまたは) を作成します。NSDictionaryJSON ドキュメントを解析して、NSDictionaryまたはNSArrayオブジェクトを取得することは、1 つのステートメントの問題です。「イベントドリブン」モードをサポートするものもいくつかあります。

XML は JSON よりもはるかに複雑です。本質的に、JSON パーサーははるかに単純であり、ドキュメントの解析においてほとんどの場合より効率的です。

その単純さにもかかわらず、JSON はほとんどの場合、データを表現するのに十分です。

したがって、JSON でデータを表現できる場合は、どうしても JSON を使用してください。可能であれば、使用してNSJSONSerializationください。

他のサードパーティの JSON パーサーは、イベント駆動型 API、データのチャンクを処理する改善された方法、Unicode NULL 文字、Unicode 非文字の処理、JSON の変換方法など、特定のエッジ ケースをカスタマイズするためのより洗練されたオプションなどの追加機能を提供する場合があります。数値などであり、よりも速い可能性NSJSONSerializationがあります。

現在、NSJSONSerializationJSONKit とほぼ同じ速度です。(一部の入力では、JSONKit の方が少し高速です)。NSJSONSerialization私の知る限り、ほとんどの場合、特にアーム上で、数値の変換に関しては、どの入力に対しても高速なサードパーティのパーサーが 2 つあります。1 倍から 2 倍の範囲でより高速になることが期待できます。ただし、JSON の解析がパフォーマンスの問題の原因になることはほとんどないことを考慮してください。

于 2013-09-04T16:09:11.630 に答える