2011-01-03 19 views
0

データをWebサービスに渡すには、必要なオブジェクトとキーを持つNSDictionaryを作成し、JSONRepresentationを使用して形式を整えてサービスに投稿します。私のNSDictionaryのJSONRepresentationを作成すると、注文が乱れますか?

2つのパラメータだけが必要だった以前のバージョンではすべてうまく機能しました。 listitemsとUDIDを持つ配列。

いいえこの新しいバージョンでアプリケーションを使用しているユーザーにさらにデータを提供する必要があるため、バージョン番号も渡す必要があります。

私のJSONRepresentationを今作成すると、問題の順序がすべて乱れてしまいます。

NSMutableDictionary *rowDict = [[NSMutableDictionary alloc] initWithObjectsAndKeys:arrayDict,@"basketListV2",sharedData.udid,@"UDID",@"1.4",@"version",nil]; 

バージョンが最初に印刷され、UDIDが次にbasketListV2に印刷されます。

私のNSDictの注文を維持するために私ができることは誰でも知っていますか?私はNSDictionaryとNSMutableDictionaryの両方を試しました(おそらくそれを使って何もする必要はありませんが、テスト目的のために試してみる必要がありました)。

ありがとうございます。キーは文字列が(http://developer.apple.com/library/mac/#documentation/Cocoa/Reference/Foundation/Classes/NSDictionary_Class/Reference/Reference.htmlを参照)

はとにかく、順序が辞書のためSENSの多くを作成しませんされていない限り

Lewion

+0

-stan

http://developer.apple.com/library/mac/#documentation/Cocoa/Reference/Foundation/Classes/NSArray_Class/NSArray.htmlを参照してください)。 RFC 4627は明示的に 'オブジェクトは0個以上の名前と値のペアの_unordered_コレクションです。' –

答えて

1

NSDictionaryの順序は未定義です。したがって、JSON表現レベルでさえそれに気を取られるべきではありません。

これらのものを実際に注文する必要がある場合(そして、バージョンの変更に応じて順序が変わらないようにしてください)、インターフェイスの順序付けられたオブジェクトのコレクションであるNSArraysを使用してください。

乾杯、あなたは順序に依存しないでください

関連する問題