如何在swift 3.0中获得Json响应?
问题描述:
我在XCode 8中以不同格式生成JSON响应,因为它用于出现在XCode 7.3中如何在swift 3.0中获得Json响应?
因此,我的应用程序停止响应。我正在分享我的回复的截图。
这是我使用
func MobileNumber(_ notification : Notification){
activityIndicator.stopAnimating()
if let notificationDict = (notification as NSNotification).userInfo{
print(notificationDict)
if let dataDict = notificationDict["Data"] as? NSDictionary{
print(dataDict)
if let status = dataDict["response"] as? Int{
switch status{
case 1:
if let data = dataDict["data"] as? NSDictionary{
if let mobileNumber = data["phone"] as? String{
UserDefaults.standard.set(mobileNumber, forKey: DefaultsKey.phoneNumber.rawValue)
print(mobileNumber)
}
UpdateFrame1()
}
JSON响应代码:
Data]: 243 bytes
[Result]: SUCCESS: {
data = {
"__v" = 0;
"_id" = 5833e131de2fe2342b0d0410;
code = "<null>";
"created_at" = "2016-11-22T06:09:53.097Z";
"expiry_date" = "2016-11-22T06:09:53.097Z";
phone = 9********;
status = active;
};
message = "Resending your unused auth code";
response = 1;
}
[Timeline]: Timeline: { "Request Start Time": 501493300.746, "Initial Response Time": 501493302.862, "Request Completed Time": 501493302.868, "Serialization Completed Time": 501493302.872, "Latency": 2.116 secs, "Request Duration": 2.122 secs, "Serialization Duration": 0.003 secs, "Total Duration": 2.126 secs }
答
试试这个: -
let val = userInfo["SUCSESS"]
if let jsonData = (val as AnyObject).data(using: String.Encoding.utf8.rawValue)
{
do{
let jsonObject = try JSONSerialization.jsonObject(with: jsonData, options: JSONSerialization.ReadingOptions.mutableContainers)
if let dict = jsonObject as? [String: AnyObject]
{
print("YOUR PHONE NUM \((dict as? [String : AnyObject])?["data"]?["phone"])")
}
}catch let error as NSError {
print("Failed to load: \(error.localizedDescription)")
}
}
+0
我必须按照我在问题中陈述的方式来执行此操作,当我们击中API并且我们正在获得响应时,您的方式将起作用。 –
+0
如上所述,您可以使用“dataDict”,而不是“userInfo”,这对我有用 –
告诉我们,您使用的代码。 –
另外显示旧的和新的JSON响应。并将其作为文本复制并粘贴到问题中(而不是使用屏幕截图)。 – Codo
由于xcode更新和时间短缺,无法显示旧响应。 –