私はエラーを取得するたび:URLSessionDataTask応答データをチェックする方法は、配列または辞書ですか?
jsonError::Error Domain=NSCocoaErrorDomain Code=3840 "Invalid value around character 1." UserInfo={NSDebugDescription=Invalid value around character 1.}
let dataTask: URLSessionDataTask = session.dataTask(with: urlRequest as URLRequest) { (data:Data?, response:URLResponse?,error: Error?) in
if((error) != nil){
completionHandler(false, nil, error)
}
else{
do {
let responseData = try JSONSerialization.jsonObject(with: data!, options: .allowFragments)
if responseData is Dictionary<String, Any>{
print("dictionary type")
}
else if responseData is Array<Any>{
print("array type")
}
}
catch let jsonError {
print("jsonError::\(jsonError)")
completionHandler(false, nil, jsonError)
}
}
}
dataTask.resume();
示唆してください。前もって感謝します。
データは有効なJSONではないようです。データおよび/または文字列に変換されたデータをロギングしてみてください。 –
@KenThomasesレスポンス文字列は、htmlページタグで応答を生成しました。 対象-c内の は、 で試行されました。id = [NSJSONSerialization JSONObjectWithData:data options:kNilOptions error:&jsonError]; NSDictionary * jsonDictionary = [NSDictionary new]; if([response isKindOfClass:[NSDictionary class]]){ jsonDictionary =レスポンス; } else { jsonDictionary = [レスポンスlastObject]; } すぐに問題をうまく解決できます。 – NishantK
このようにしてみましたか? - もしresponseData = responseDataを? [[文字列:任意]] {} –