【问题标题】:Swift: JSON object of two dimensional array processingSwift:二维数组处理的JSON对象
【发布时间】:2015-11-14 22:00:09
【问题描述】:

我有一个json对象天数:

days = {"available_hours":{ 
    "Monday" : [ ["5:30 am","11:00 am"] , [“1:00 pm","4:00 pm”], ["4:00 pm”,  "9:00 pm"] ]
    "Tuesday" : [ [“2:30 pm","7:50 pm"] ]
    "Friday" : [ [“7:30 am","12:50 pm"], [“4:00 pm","11:59 pm”] ]
}  

我想得到一个包含每天和可用时间的列表。

 ["Monday 5:30 am - 11:00 am, 1:00 pm - 4:00 pm, 4:00 pm - 9:00 pm”, "Tuesday 2:30 pm","7:50 pm",etc ]

我正在使用这个函数来处理数据,并且我每天都在传递 JSON 对象:

private func hoursList(shifts: [[String]]) -> String{
    var shiftslist: [String] = []
    var shifttext: String = ""
    for shift in shifts {
        shifttext += "\(shifts[0]) - \(shift[1])"
        shiftslist.append(shifttext)
    }  
    return join(", ", shiftslist)
}

问题是我不能通过任何一天,因为它不能转换为 [[String]]

【问题讨论】:

  • 您的 json 无效。我在这里检查过。jsonlint.com
  • 你说得对,缺少几个 (,) 。但通常结构是正确的

标签: ios json string swift multidimensional-array


【解决方案1】:

这对我有用:

   // Int from JSON
func getIntFromJSON(data: NSDictionary, key: String) -> Int {

    let info : AnyObject? = data[key]

    if let info = data[key] as? Int {
        return info
    }

    else {
        return 0

    }

}

// Array from JSON
func getArrayFromJSON(data: NSDictionary, key: String) -> NSArray {

    let info : AnyObject? = data[key]

    if let info = data[key] as? NSArray {
        return info
    }

    else {
        return []

    }

}
//Object from JSON
func getObjectFromJSON(data: NSDictionary, key: String) -> AnyObject {

    let info : AnyObject? = data[key]

    if let info: AnyObject = data[key] {
        return info
    }

    else {
        return []

    }

}
// String from JSON
func getStringFromJSON(data: NSDictionary, key: String) -> String {

    let info : AnyObject? = data[key]
    println(data[key])
    if let info = data[key] as? String {
        return info
    }

    return ""
}

你必须通过传递你的 JSON 和 key 来调用函数。

    var available_hours = self.getArrayFromJSON(JSONString as! NSDictionary, key: "available_hours")

    // Passing available_hours to get the values for sub-array
    var Tuesday = self.getStringFromJSON(available_hours as! NSDictionary, key: "Tuesday")

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2014-07-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-07-23
    • 2022-01-24
    • 1970-01-01
    相关资源
    最近更新 更多