2017-08-07 61 views
0

但是也有一些基于JSON需要在特定的顺序返回,如果他们的布尔是真实的订单上的项目:如何以特定顺序显示数组中的项目?

"items": { 
    "item1": true, 
    "item2": true, 
    "item3": true, 
    "item4": true, 
    "item5": true, 
    "item6": true 
} 

这些项目则需要证明其对应的图像,以便在的CollectionView。将这些项目添加到数组中以便按正确的顺序获取这些项目之后有没有办法?

这是我现在使用的功能,它的工作原理,但顺序不同:

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

那么这个问题有些事情不是很清楚。首先你说你有一个JSON对象,但在代码示例中,似乎这个对象实际上是一个NSDictionary? –

+0

这个json文件被用作应用程序在UI中显示的指南。如果它的价值是真的,它应该显示。 – SwiftyJD

+0

如果您的问题与以JSON格式存在的数据无关,请将其忽略。它将澄清这个问题。 –

回答

2

那么一旦你解码JSON你进入的NSDictionary你没有得到项目回到相同的方式如同它们在JSON字符串中的顺序。

因此,要么使用Array(items).sort(请参阅Sort Dictionary by keys)再次对条目进行排序,要么对您的JSON数组执行自定义分析以获得原始排序。

相关问题