我有一个JSON如下。
odds: {
0501: {
x: 2.75,
description: "a"
},
0502: {
x: 3.25,
description: "b"
},
0513: {
x: 3.5,
description: "c"
},
0503: {
x: 3.5,
description: "d"
},
0505: {
x: 7.5,
description: "e"
},
0504: {
x: 7.5,
description: "f"
},
0512: {
x: 10,
description: "g"
}
}
这个哈希来自我想要显示的HTTP响应,但是我使用JSONModel来映射它,并且只有这种方式来映射NSDictionary。将这个JSON映射到NSDictionary时(正如你猜测的那样),这个无序的数据序列会混合在一起。
那么,如何映射这个JSON,而不是使用JSONModel和NSDictionary打破它的序列?
答案 0 :(得分:0)
NSDictionary
本质上是无序的:
Are keys and values in an NSDictionary ordered?
如果要保留键值条目的顺序,则需要使用NSDictionary
以外的数据结构。通过NSDictionary
传递数据的任何库都无法保留订单。
答案 1 :(得分:0)
我在这种情况下所做的事情是除了字典外,还要将字典键排序在一个单独的数组中。使用有序键数组确定如何显示字典值。
答案 2 :(得分:0)
字典无法排序,但由于您的JSON似乎是一个对象数组,因此通过for ... in迭代生成的NSDictionary并将元素添加到可变数组中。
然后通过比较x值来使用.sortInPlace对生成的数组进行排序。