J'essaie d'intégrer une API de connexion dans mon projet iOS. Quand je frappe cette API dans le navigateur, cela me donne une réponse JSON correcte. Considérant que, quand je l'appelle dans mon application, je suis incapable de lire JSON. Code est aussi:Lecture des données dans la réponse de l'API | iOS
let url = NSURL(string: "myURL")
let request = NSURLRequest(URL: url!)
let session = NSURLSession.sharedSession()
let task = session.dataTaskWithRequest(request) { (data, response, error) -> Void in
if error != nil {
print (error)
}
do {
//jsonDict is always nil
if let jsonDict = try self.jsonFromData(data!) {
print (jsonDict)
}
}
catch {
print ("hi")
}
}
jsonFromData est aussi:
private func jsonFromData(jsonData: NSData) throws -> [NSDictionary]?
{
var jsonDict: [NSDictionary]? = nil
do
{
jsonDict = try NSJSONSerialization.JSONObjectWithData(jsonData, options: NSJSONReadingOptions.AllowFragments) as? [NSDictionary]
}
catch
{
throw(error)
}
return jsonDict
}
Réponse de l'API, lorsqu'il est frappé dans le navigateur est aussi:
S'il vous plaît aidez-moi, ce que je Je fais mal. Merci.
MISE À JOUR: Je viens de vérifier que si je convertis des données en chaîne, il donne une valeur correcte. à savoir
let string = NSString(data: jsonData, encoding: NSASCIIStringEncoding)
print (string)
//OUTPUT: Optional({"Authenticated":true,"CustomerID":000,"CustomerName":"TEMP","Members":[{"MemberID":000,"MemberNumber":"000","MembershipID":00,"MembershipExpiration":"\/Date(1517464799000-0600)\/","ValidBuyerTypes":[0]}]})
Oui, j'ai résolu le problème de cette façon. La réponse était en chaîne (très probablement). et puis j'ai dactylographié la chaîne au dictionnaire .. Je partagerai aussi ma réponse. –