サーバーからのマップ(辞書)を表すJSON文字列があります。
この地図は@私のiPhoneアプリなので描く必要があります。
JSONKitを使用していますが、ハッシュ関数を使用して内部JKDictionaryにキーを挿入しているようです。
では、キーを注文するために優先番号を送信する必要がありますか?または、サーバーのJSONデータのキーの順序を保持するようにJSONKitを作成する方法はありますか?
サーバーからのマップ(辞書)を表すJSON文字列があります。
この地図は@私のiPhoneアプリなので描く必要があります。
JSONKitを使用していますが、ハッシュ関数を使用して内部JKDictionaryにキーを挿入しているようです。
では、キーを注文するために優先番号を送信する必要がありますか?または、サーバーのJSONデータのキーの順序を保持するようにJSONKitを作成する方法はありますか?
order
プロパティをディクショナリに追加することを選択できます。そして、そのプロパティを使用してキーを並べ替えます。次に、ソートされたキーを使用して辞書を列挙できます。enumerateKeysAndObjectsUsingBlock:
// Here I suppose you have added another number property `order` for your dictionary's values
NSArray *sortedKeys = [dic keysSortedByValueUsingComparator:^(id obj1, id obj2){
return [obj1 order] < [obj2 order];
}];
// for in will give your an ordered travel for your sortedKeys
for (id key in sortedKeys) {
// handle your dic
[dic objectForKey:key];
}
辞書は順序付けされていませんが、配列は順序付けられているため、JSON データ構造を配列に変更できれば、順序付けられた結果が得られるはずです。
[{'key1':'value1'},{'key2':'value2'},{'key3':'value3'}]
データはどのように見えますか?