每次我得到一个错误:如何检查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为? [[字符串:任何]] {} –