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

时间:2022-11-13 02:44:40

I make REST calls from my own server running Vapor to a Firebase server and the response is a JSON object.
How can I get the the elements under "1508321173" without knowing the actual value. This represents a timestamp, so this value is always dynamic in the database.

我从我自己的运行Vapor的服务器到Firebase服务器进行REST调用,响应是一个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)") 

prints: arrayOfDict is JSON(node: Node.Node.object(["1508321173": Node.Node.object(["BookingStatusClient": Node.Node.string("true"),
"DateAndTime": Node.Node.string("Fri, 20 Oct 2017 18:30")])]))

prints:arrayOfDict是JSON(node:Node.Node.object([“1508321173”:Node.Node.object([“BookingStatusClient”:Node.Node.string(“true”),“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" ?
                }          
    }

1 个解决方案

#1


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

#1


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