私の知る限り、Objective-Cには3つのJSONパーサー、 JSON Framework 、 [〜#〜] yajl [〜#〜] 、および JSON をタッチします。次に、これら3つには独自の特性があります。
例えば:
YAJLは、SAXスタイルのパーサーとして使用できます。
JSONフレームワークには比較的長い歴史があり、広く使用されています。
Touch JSONはNSStringではなくNSDataを解析します。
さらに、テストした限りでは、パフォーマンス比較の結果は次のとおりです。
[fast]YAJL> JSON Framework> Touch JSON[slow]。
これらのJSONパーサーの長所と短所を知っている場合、教えてもらえますか?
最後に、他のJSONパーサーを知っている場合は教えてください。
速度を探しているなら、 JSONKit を見てください。これは(通常)既に述べたJSONライブラリよりもはるかに高速で、多くの場合1桁高速です。また、「最近インスタンス化されたオブジェクトキャッシュ」であるため、(通常も)使用するメモリも少なくなります。
私が行った比較 を考慮すると、最速のライブラリはJSONKitであり、NSJSONSerialization(現在はパブリックAPI)とNextiveJSONが続きます。 SBJSONとTouchJSONは、以前の3つのライブラリよりも少し遅いです。
比較は、iOS 5.0.1を搭載したiPhone 4Sを使用して行われました。
this parser :もあります。
私はこれにつまずいた方法を覚えていませんが、軽量でシンプルに見えたので、私はそれが私のニーズに合っていると思いました。 NSDataから初期化を追加するために、イベントをフォークしました。小さな応答を解析する必要があるため、パフォーマンスについては気にしませんでした。それがどのように機能するかを知ることは興味深いでしょう。
JSONKitはYAJLよりも速く、YAJLはTouch JSONよりも速く、IOS5クラスのNSJSONSerializationクラスははるかに速いと思います。 NSJSONSerialization サードパーティAPIを使用する必要はありません。
この投稿 を見てください。 <30文字>
NSObjectからJSONへ、またはその逆へのシリアライザーを探している場合は、チェックアウトしたい場合があります OBJC JSONSerializer
さまざまな種類のパーサーを比較するパーサーに関するakosmaのベンチマークをご覧ください。 1つのパーサーが欠落している場合、そのコードはオープンソースなので、テストに追加することもできます。