NSJSONSerialization行为不端,98%的时间返回数组,其他2%返回dict

时间:2012-07-26 23:22:06

标签: ios json nsjsonserialization

这真的很奇怪。

我们正在访问一个始终返回数组的json Twitter API。 即 https://twitter.com/statuses/user_timeline/485963081.json

我们这样做:

if([NSJSONSerialization class]) {
        NSError *error = nil;
        jsonResponse = [NSJSONSerialization JSONObjectWithData:responseData options:0 error:&error];    
        DLog(@"JSON Parsing Error: %@", error);

    } else {
        NSString * jsonString = [[NSString alloc] initWithData:responseData encoding:NSUTF8StringEncoding];
        jsonResponse = [jsonString JSONValue];
    }
    if([jsonResponse count] > 0) {
        NSString *jsonText = [[jsonResponse objectAtIndex:0] objectForKey:@"text"];
        twitterText = jsonText;
    }

这绝大部分时间都有效。其余的,我们得到这个:

[__NSCFDictionary objectAtIndex:]: unrecognized selector sent to instance

请注意,所有错误都在iOS5上,因此SBJSON库不适用。

有时NSJSONSerialization会将数组解析为dict。坦率地说,使用来自twitter的数据是不可能的。那么这里发生了什么?

0 个答案:

没有答案