将NSData转换为JSON

Ill*_*lep 6 iphone cocoa-touch objective-c

我有一个NSData对象,我需要将它转换为一个NSDictionary对象.

NSData *data = ....;
Run Code Online (Sandbox Code Playgroud)

现在我需要将其转换为a NSDictionary,我该如何以编程方式执行此操作?

注意:我保存NSDataNSDictionaryi之后应该可以访问key value对了NSDictionary.

到目前为止,我没有代码来演示我的工作,我只创建了NSData对象,并且没有任何线索可以继续:)

Mar*_*ard 3

您可以子类化 MKNetworkOperation 并使用以下内容重写 responseJSON 方法:

-(id) responseJSON
{
    NSString *rawJSON;
    id jsonValue = nil;
    if ((rawJSON = [[NSString alloc] initWithData:[self responseData] encoding:NSUTF8StringEncoding]) != nil) {
        SBJsonParser *jsonParser = [[SBJsonParser alloc] init];
        if ((jsonValue = [jsonParser objectWithString:rawJSON]) == nil) {
            NSLog(@"This string doesn't seem to be JSON: '%@'\nraw Data : '%s'", rawJSON, (char *)[[self responseData] bytes]);
            return [self responseString];
        }
    }
    else {
        NSLog(@"This data doesn't seem to be an UTF8 encoded string: %@", [self responseData]);
        return [self responseString];
    }

    return jsonValue;
}
Run Code Online (Sandbox Code Playgroud)