从推送通知解析时SwiftyJson解析问题

时间:2017-09-21 19:30:01

标签: json swift parsing swifty-json

使用Swifty JSON解析JSON的问题

这是** SwiftyJSON *问题:我试图解析推送通知中的一些JSON,但我似乎无法将其转换为单个值

if let json = try? JSON(data: data) {
print("before")
print(json["data"].stringValue)   
print ("after")
}

我最终得到了

的控制台输出
before

{
   "apiKey":{
      "data":{
         "user_id":8,
         "id":75,
         "secret":"G4UgMXXXXnt0bviGjNHCPRY4nYjuvXMrEkaU2dxqOC9j7XiIy4uS1TNLxv4Kev7w"
      }
   },
   "verified":true,
   "loneWorker":{
      "data":{
         "vehicle_make":null,
         "gender":null,
         "mobile":"+447900007213",
         "vehicle_model":null,
         "hair_colour":null,
         "distinguishing_features":null,
         "firebase_token":"dsMGqAn57eo:APA91bHcE_8hoCQ9qgJfpr4b6yDrUkkkeJL7oGx-410v7hKyZfgBkcvROHevTmojJ6CvQrspDOvvXnXo9psTRKdnlQAEYzdvBE8OtsxHf-3JRmDRbJCiTrsVowDgQ5FeN7QQaEfMbFH",
         "vehicle_colour":null,
         "vrm":null,
         "arc":{
            "data":{
               "prealert_sms_number":"+447506000094",
               "sos_sms_number":"+44750000894",
               "id":1,
               "sos_call_number":"+447500000094"
            }
         },
         "build":null,
         "dob":null,
         "duress_word":null,
         "name":"Stevan ",
         "id":8,
         "preexisting_conditions":null,
         "email":"xxxxxx@hotmail.com",
         "height":null
      }
   }
}

after

但如果我尝试这样做:     print(json["data"]["apiKey"]["secret"].stringValue) 我一无所获。

我有一个精神障碍,并且不能解决使用SwiftyJSON或任何其他正常方式解析...

[编辑:谢天谢地,我找到了这个问题的答案,你可以在下面的评论中看到。这些天我现在喜欢Codable作为一个很好的现代选择]。

1 个答案:

答案 0 :(得分:0)

您正以错误的方式访问该值。 您必须使用json["data"]["apiKey"]["data"]["secret"].stringValue访问该值。