JSONKit:如何保持JSON字典键的顺序(JSONKit: how to keep order

2019-10-29 18:44发布

我有一些JSON字符串,它代表了服务器映射(字典)。

我需要绘制这个地图,因为它是我的@ iPhone应用程序。

我使用JSONKit,似乎它使用散列函数来插入钥匙到其内部JKDictionary ....

所以,我应该送一个优先号码顺序按键? 还是有一些方法,使JSONKit保留服务器JSON数据的关键字排序?

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


Answer 2:

字典是没有顺序的,但阵列,所以如果你可以改变你的JSON数据结构到一个数组,你应该得到一个有序的结果。

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

什么是您的数据是什么样子?



文章来源: JSONKit: how to keep order of JSON dictionary keys