我有一些JSON字符串表示來自服務器的Map(字典)。JSONKit:如何保持JSON字典鍵的順序
我需要畫這張地圖,因爲它是@我的iPhone應用程序。
我使用JSONKit,似乎它使用散列函數插入鑰匙到其內部JKDictionary ....
所以我應該送一個優先號碼順序按鍵?或者有一些方法可以讓JSONKit保留服務器JSON數據的密鑰排序?
我有一些JSON字符串表示來自服務器的Map(字典)。JSONKit:如何保持JSON字典鍵的順序
我需要畫這張地圖,因爲它是@我的iPhone應用程序。
我使用JSONKit,似乎它使用散列函數插入鑰匙到其內部JKDictionary ....
所以我應該送一個優先號碼順序按鍵?或者有一些方法可以讓JSONKit保留服務器JSON數據的密鑰排序?
您可以選擇將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'}]
你的數據是什麼樣的?
這是一個好主意,但我將不得不在我的代碼中改變很多,所以我會通過,但謝謝你的好解決方案。 –