0

サーバーからのマップ(辞書)を表すJSON文字列があります。

この地図は@私のiPhoneアプリなので描く必要があります。

JSONKitを使用していますが、ハッシュ関数を使用して内部JKDictionaryにキーを挿入しているようです。

では、キーを注文するために優先番号を送信する必要がありますか?または、サーバーのJSONデータのキーの順序を保持するようにJSONKitを作成する方法はありますか?

4

2 に答える 2

1

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];
}
于 2012-11-25T13:20:39.143 に答える
1

辞書は順序付けされていませんが、配列は順序付けられているため、JSON データ構造を配列に変更できれば、順序付けられた結果が得られるはずです。

[{'key1':'value1'},{'key2':'value2'},{'key3':'value3'}]

データはどのように見えますか?

于 2012-11-25T14:58:11.800 に答える