2017-10-18 97 views
0

我從運行Vapor的自己的服務器向Firebase服務器發送REST調用,並且 響應是JSON對象。
如何在不知道實際值的情況下獲取「1508321173」下的元素。這代表一個時間戳,所以這個值在數據庫中總是動態的。如何將JSON轉換爲Swift 3蒸氣字典

let jsonObject:JSON = [ 
"EmailAddress": "[email protected]", 
"PhoneNumber": 07672395038, 
"RescheduledByCustomer": 
    [1508321173: 
     ["BookingStatusClient": "true", 
     "DateAndTime": "Fri, 20 Oct 2017 18:30"] 
    ], 
"BookingNumber":"726070304" 
    . 
    . 
    . 
] 



let jsonObject:JSON? 

if let arrayOfDict:Any = jsonObject?.object?["RescheduledByCustomer"]{ 
       print("arrayOfDict is \(arrayOfDict)") 

打印: arrayOfDict是JSON(節點:Node.Node.object([ 「1508321173」: Node.Node.object([ 「BookingStatusClient」:Node.Node.string( 「真」 ),
「DateAndTime」:Node.Node.string( 「星期五,2017年10月20日18點30分」)])]))

if let underTimeStamp = arrayOfDict as? [[String: Any]]{ 
     print("underTstamp is \(underTstamp)") 
      //it does not print anything 
    //how can I get the elements under "1508321173" ? 
       }   
    } 

回答

0
//get the object under timeStamp 1508321173 


let arrayOfTimeStamps = jsonObject?["RescheduledByCustomer"]?.object?.keys 
    for timeStampKey in arrayOfTimeStamps?.array ?? [] { 
    let dictUnderTstamp = jsonObject?["RescheduledByCustomer"]?.object?[timeStampKey] 


      for i in (dictUnderTstamp?.object)!{ 
       print("i key dictUnderTstamp is \(i.key)") 
       print("i value dictUnderTstamp is \(i.value)") 
      } 
     }