每次我得到一個錯誤:如何檢查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頁面標籤響應。 任何替代? 在objective-c試用 id response = [NSJSONSerialization JSONObjectWithData:data options:kNilOptions error:&jsonError]; NSDictionary * jsonDictionary = [NSDictionary new]; if([response isKindOfClass:[NSDictionary class]]){ jsonDictionary = response; } else { jsonDictionary = [response lastObject]; } 在swift中工作正常。 – NishantK
你有沒有試過這樣的: - 如果讓responseData = responseData爲? [[字符串:任何]] {} –