这是** 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
作为一个很好的现代选择]。
答案 0 :(得分:0)
您正以错误的方式访问该值。
您必须使用json["data"]["apiKey"]["data"]["secret"].stringValue
访问该值。