Разбор электронной почты от LinkedIn v2 API - PullRequest
0 голосов
/ 28 февраля 2020

В LinkedIn v2 API есть отдельный URL для получения адреса электронной почты. Ответ JSON представляет собой массив одного объекта. Может ли кто-нибудь помочь мне разобрать этот объект, чтобы получить адрес электронной почты? URL LinkedIn: https://api.linkedin.com/v2/emailAddress?q=members&projection= (элементы * (дескриптор ~)) возвращает этот JSON

["elements": <__NSSingleObjectArrayI 0x600000e8e760>(
{
    handle = "urn:li:emailAddress:123456789";
    "handle~" =     {
        emailAddress = "john123@gmail.com";
    };
}
)
]

JSON ответ, помещенный в строку: Любой объект.

if let emailOnly = response.jsonObject as? [String: Any] {
let emailAddress = (emailOnly["elements"]
                    as? [String:Any])?["handle~"] as? String ?? ""
print("emailaddress is ->", emailAddress)

emailAddress остается пустым после последнего оператора.

Вот полный код:

linkedinHelper.requestURL("https://api.linkedin.com/v2/emailAddress?q=members&projection=(elements*(handle~))", requestType: LinkedinSwiftRequestGet, success: {(response) -> Void in
        if let emailOnly = response.jsonObject as? [String: AnyObject {
            let emailAddress = (emailOnly["elements"]
                as? [String: Any])?["handle~"] as? String ?? ""
            print("emailaddress is ->", emailAddress)
        }
    })

Ответы [ 2 ]

0 голосов
/ 02 марта 2020

с ответом вы можете сделать-> response.elements [0] ["handle ~"]. EmailAddress

0 голосов
/ 29 февраля 2020

Я нашел следующий фрагмент кода, который работал.

linkedinHelper.requestURL("https://api.linkedin.com/v2/emailAddress?q=members&projection=(elements*(handle~))", requestType: LinkedinSwiftRequestGet, success: {(response) -> Void in
        if let dictEmailOnly = response.jsonObject as? [String: Any] {
            if let x = dictEmailOnly["elements"] as? [[String:Any]],
               let y = x.first {
                let linkedInEmail = (y["handle~"] as? [String: Any])?["emailAddress"] as? String ?? ""
                print(linkedInEmail)
            }
        }
    })
...