2017-08-07 63 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數組執行自定義分析以獲得原始排序。

相關問題