如何在Swift 3 Vapor中将JSON转换为Dictionary

时间:2017-10-18 14:03:38

标签: arrays json swift vapor

我从我自己的运行Vapor的服务器进行REST调用到Firebase服务器 响应是一个JSON对象 我怎样才能得到" 1508321173"不知道实际价值。这表示时间戳,因此该值在数据库中始终是动态的。

let jsonObject:JSON = [
"EmailAddress": "damiena@gmail.com",
"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.Node.object([" 1508321173":             Node.Node.object([" BookingStatusClient":Node.Node.string(" true"),
           " DateAndTime":Node.Node.string(" Fri,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" ?
                }          
    }

1 个答案:

答案 0 :(得分: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)")
            }
        }