我有一些 JSON 字符串,它代表来自服务器的地图(字典)。
我需要绘制这张地图,因为它是@我的 iPhone 应用程序。
我正在使用 JSONKit,它似乎使用散列函数将键插入其内部 JKDictionary....
那么我应该发送一个优先级号码来订购钥匙吗?或者有什么方法可以让 JSONKit 保留服务器 JSON 数据的键顺序?
我有一些 JSON 字符串,它代表来自服务器的地图(字典)。
我需要绘制这张地图,因为它是@我的 iPhone 应用程序。
我正在使用 JSONKit,它似乎使用散列函数将键插入其内部 JKDictionary....
那么我应该发送一个优先级号码来订购钥匙吗?或者有什么方法可以让 JSONKit 保留服务器 JSON 数据的键顺序?
您可以选择将order
属性添加到字典中。并使用该属性对您的密钥进行排序。然后,您可以使用排序键枚举您的字典。枚举KeysAndObjectsUsingBlock:
// 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'}]
你的数据是什么样的?