2017-10-14 60 views
-3

我试图从NSMutableDictionary采取价值我不能把它,因为它的多维如何取值从的NSMutableDictionary

{ 
    "seleted_days" =  (
     TUE, 
     WED 
    ); 
    timings =  (
       (
     ), 
       (
     ), 
       (
         { 
       "close_time" = "05:00 AM"; 
       "open_time" = "02:00 AM"; 
       timelist = "02:00 AM , 03:00 AM , 04:00 AM , 05:00 AM"; 
       timestat = "1,0,0,1"; 
      } 
     ), 
       (
         { 
       "close_time" = "05:00 AM"; 
       "open_time" = "02:00 AM"; 
       timelist = "02:00 AM , 03:00 AM , 04:00 AM , 05:00 AM"; 
       timestat = "1,0,0,1"; 
      } 
     ), 
       (
     ), 
       (
     ), 
       (
     ) 
    ); 
} 

需要从这个NSMutableDictionary

得到开启时间和关闭时间

我试图代码

let array:NSArray = myretrievedic.value(forKey: "timings") as! NSArray 
      for i in 0...array.count 
      { 

      let subArray:NSArray = array.object(at: i) as! NSArray 
      if let dict:NSDictionary = subArray.object(at: 0) as! NSDictionary 
      { 

      let close_time:String = dict.value(forKey: "close_time") as! String 
      let open_time:String = dict.value(forKey: "open_time") as! String 


      print(open_time) 
      print(close_time) 
      } 

当空谈到它崩溃,即使我把要是让statements.i不明白为什么,如果我们不声明working

+2

请出示你的代码试图JSON字符串,我想你应该避免使用SWIFT'NSMutableDictionary',而不是使用SWIFT本地字典类型 – 3stud1ant3

回答

-1
let dictionary:NSMutableDictionary = NSMutableDictionary() 

    let array:NSArray = dictionary .value(forKey: "timings") as! NSArray 


    for i in 0...array.count 
    { 
     let subArray:NSArray = array.object(at: 2) as! NSArray 

     if subArray.count > 0 { 

      let dict:NSMutableDictionary = subArray.object(at: 0) as! NSMutableDictionary 

      let close_time:String = dict.value(forKey: "close_time") as! String 
      let open_time:String = dict.value(forKey: "open_time") as! String 
     } 
    } 
+0

我需要得到所有,开放时间和关闭时间 –

1

timings的值是一个数组数组。

这是一个本地Swift解决方案,仅使用Swift本机集合类型。它包含用于反序列化JSON的行。 dataData utf-8编码

do {  
    if let root = try JSONSerialization.jsonObject(with: data) as? [String:Any], 
     let timings = root["timings"] as? [[Any]] { 
     for timing in timings where !timing.isEmpty { 
      if let times = timing.first as? [String:String] { 
       let openTime = times["open_time"]! 
       let closeTime = times["close_time"]! 
       print(openTime, closeTime) 
      } 
     } 
    } 
} catch { 
    print(error) 
} 
相关问题