我可以最小化此SBjson代码中使用的对象数量吗?

时间:2011-10-11 06:15:49

标签: objective-c ios json sbjson

我从服务器收到的响应格式如下:

{
    "Data":{
        "Key": "Value"
        ...
    },
    "Key": "Value"
    ...
}

但是,我只对“数据”下的元素感兴趣。 这是我目前正在使用的代码:

SBJsonParser *parser = [SBJsonParser new]; 
NSString *responseString = [request responseString];
NSDictionary *responseData = [parser objectWithString:responseString];
NSString *infoString = [responseData objectForKey:@"Data"];
NSDictionary *infoData = [parser objectWithString:infoString];

有没有办法在没有明确声明5个对象的情况下执行相同的操作?只是寻找一些我应该使用的短手感。

1 个答案:

答案 0 :(得分:1)

你的最后两行是错误的 - "Data"实际上是NSDictionary,所以你不需要再解析它。

此外,大多数Objective-C程序员会在他们知道返回是安全的情况下嵌套调用 - 我的意思是不需要额外的检查。例如,这会让我看到更自然的实现:

NSDictionary *responseDictionary = [[request responseString] JSONValue];
NSDictionary *infoData = [responseDictionary objectForKey:@"Data"];

请注意,我使用JSONValue附带的NSObject类别中的便捷方法SBJSON