有些项目基于JSON中的订单,如果它们的bool为真,则需要按特定顺序返回:
"items": {
"item1": true,
"item2": true,
"item3": true,
"item4": true,
"item5": true,
"item6": true
}
然后,这些项目需要在集合视图中按顺序显示相应的图像。将这些项添加到数组后,是否有一种方法可以按正确的顺序获取这些项?
这是我现在使用的功能,它可以工作,但顺序不同:
var appMenuJSON: NSDictionary?
var menuButtonsArray: [String?] = []
func getItems(){
guard let items = appMenuJSON else {return}
for (key, value) in items {
if let val = value as? Bool, val == true {
menuButtonsArray.append(key as! String)
}
}
答案 0 :(得分:3)
一旦你将JSON解码为NSDictionary,你就无法以与JSON字符串相同的顺序获取项目。
因此,要么使用Array(items).sort
再次对条目进行排序(请参阅Sort Dictionary by keys),要么自定义解析JSON数组以获得原始排序。