【问题标题】:How to show items in an array in a specific order? [duplicate]如何以特定顺序显示数组中的项目? [复制]
【发布时间】:2018-01-14 22:31:57
【问题描述】:

如果 bool 为 true,则需要按特定顺序返回 JSON 中基于顺序的项目:

"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)
            }

}

【问题讨论】:

  • 嗯,这个问题有些东西不是很清楚。首先你说你有一个 JSON 对象,但在代码示例中,这个对象似乎实际上是一个 NSDictionary?
  • json 文件用作 UI 中应显示内容的指南。如果它的值为真,它应该显示。
  • 如果您的问题与 JSON 格式的数据无关,请不要考虑。它将澄清问题。

标签: ios arrays swift


【解决方案1】:

好吧,一旦您将 JSON 解码为 NSDictionary,您就无法以与 JSON 字符串中相同的顺序恢复项目。

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

【讨论】:

    猜你喜欢
    • 2019-12-03
    • 1970-01-01
    • 2015-09-22
    • 1970-01-01
    • 2011-06-06
    • 1970-01-01
    • 2012-02-14
    • 1970-01-01
    • 2015-12-25
    相关资源
    最近更新 更多