2012-02-19 98 views
1

我的閱讀價值 - 幫助編寫邏輯

{"index":"0","name":"jemmy","age":"2"} 

我需要提取存儲的值,並將其保存的格式有JSON;我也做了以下內容,但它不工作

  • 終止應用程序由於未捕獲的異常 'NSInvalidArgumentException' 的,理由是: ' - [NSCFString objectForKey:]:無法識別 選擇發送到實例0x6671a10'

我的代碼

NSDictionary *dictionary = [request responseHeaders]; 
    SBJsonParser *parser = [SBJsonParser new];  
    id content = [responseString JSONValue]; 
    NSDictionary *dealDictionary = content; 
    NSArray *array = [dealDictionary allKeys]; 
    for (NSString *str in array) 
    { 
     NSDictionary *childDictionary = [dealDictionary objectForKey:str]; 
     NSLog(@"%@ ",[childDictionary objectForKey:@"name"]); 
    } 

回答

1

你可能不明白何要使用SBJSON,也許快速閱讀documentation會很有用。首先,你需要真正使用您創建的解析器:

SBJsonParser *parser = [SBJsonParser new]; 
NSDictionary *content = [parser objectWithString:[request responseString]]; 

其次,你可以穿越你的字典裏這樣稍微容易:

NSEnumerator *enum = [content keyEnumerator]; 
id key; 
while (key = [enum nextObject]) { 
    NSLog(@"key %@ and object %@",key,[content objectForKey:key]); 
} 
+0

由於某種原因,它開始從'「名」閱讀:「jemmy」,然後讀取「index」:「0」'。爲什麼是這樣?我需要它按順序閱讀它。我怎樣才能做到這一點? – shajem 2012-02-19 19:25:35

+1

@shajem字典未訂購。如果你需要一個特定的值,只需要用'[content objectForKey:@「index」]'來請求它 – Nick 2012-02-19 20:45:03