iOSプロジェクトにログインAPIを統合しようとしています。私はブラウザでそのAPIをヒットすると、正しいJSON応答が得られます。私のアプリでそれを呼び出すと、私はJSONを読むことができません。ブラウザでヒットAPIのAPIレスポンスのデータを読み込む| iOS
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
}
レスポンスは、通りである:よう
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は次のとおりです。
私を助けてください何を私、ようなコードがあります間違っている。ありがとう。
更新日: データをStringに変換すると、正しい値が返されます。すなわち
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]}]})
はい、この方法で問題を解決しました。応答は文字列で(おそらく)でした。文字列を辞書に型キャストしました。私の答えも分かち合います。 –