iOS NSURLConnection字典或数组

iOS NSURLConnection字典或数组,ios,nsurlconnection,Ios,Nsurlconnection,我有一个NSURLConnection,返回可以是字典或数组 如何知道什么是响应字典或数组,以便我进行适当的序列化 - (void)connectionDidFinishLoading:(NSURLConnection *)connection { NSError* error; NSDictionary* jsonDicto = [NSJSONSerialization JSONObjectWithData:self

我有一个NSURLConnection,返回可以是字典或数组 如何知道什么是响应字典或数组,以便我进行适当的序列化

- (void)connectionDidFinishLoading:(NSURLConnection *)connection
{
    NSError* error;
    NSDictionary* jsonDicto = [NSJSONSerialization
                               JSONObjectWithData:self.receivedData
                               options:kNilOptions
                               error:&error];

    NSArray *jsonArray = [NSJSONSerialization JSONObjectWithData:self.receivedData
                                                         options:kNilOptions
                                                           error:&error];

}
干杯。)

用这个:

id response = [NSJSONSerialization JSONObjectWithData:self.receivedData
                                                         options:kNilOptions
                                                           error:&error];

if([response isKindOfClass:[NSArray class]]) {
//Response is array
}
else if([response isKindOfClass:[NSDictionary class]]) {
//Reponse is Dictionary
}
使用以下命令:

id response = [NSJSONSerialization JSONObjectWithData:self.receivedData
                                                         options:kNilOptions
                                                           error:&error];

if([response isKindOfClass:[NSArray class]]) {
//Response is array
}
else if([response isKindOfClass:[NSDictionary class]]) {
//Reponse is Dictionary
}

您应该首先检查是否得到了内容为JSON的响应。您可能会得到一个指示错误的响应,在这种情况下,服务器通常会发送html。也就是说,首先检查状态代码是否等于200(OK),以及响应的MIME类型,该类型应为
application/json
。您应该首先检查是否得到内容为json的响应。您可能会得到一个指示错误的响应,在这种情况下,服务器通常会发送html。也就是说,首先检查状态代码是否等于200(OK),以及响应的MIME类型,它应该是
application/json