2011-10-11 41 views
0

我從服務器接收的響應的格式爲例如:我可以最小化此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

你最後兩行是錯誤的 - "Data"實際上是一個NSDictionary,所以你不需要再解析它。另外,大多數客觀C語言程序員可以在他們知道返回是安全的情況下嵌套調用 - 我的意思是不需要額外的檢查。舉例來說,這將看到一個更自然的實施對我說:

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

請注意,我使用的簡便方法JSONValue從附帶SBJSON上NSObject的類別。

相關問題