2012-11-25 28 views
0

我有一些JSON字符串表示來自服務器的Map(字典)。JSONKit:如何保持JSON字典鍵的順序

我需要畫這張地圖,因爲它是@我的iPhone應用程序。

我使用JSONKit,似乎它使用散列函數插入鑰匙到其內部JKDictionary ....

所以我應該送一個優先號碼順序按鍵?或者有一些方法可以讓JSONKit保留服務器JSON數據的密鑰排序?

回答

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]; 
} 
1

字典是沒有順序的,但陣列,所以如果你可以改變你的JSON數據結構到一個數組,你應該得到一個有序的結果。

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

你的數據是什麼樣的?

+0

這是一個好主意,但我將不得不在我的代碼中改變很多,所以我會通過,但謝謝你的好解決方案。 –

相關問題