2013-08-02 169 views
-1

我使用SBJson,我知道如何解決它,當我有一個鍵與一個值,但它有什麼工作時,我有2鍵和2值?解碼JSON字符串

這是一個需要被解碼

[{"ID":"1","Color":"Blue"},{"ID":"2","Color":"Red"},{"ID":"3","Color":"Green"}] 

字符串這是我已經試過

SBJsonParser *parser = [[SBJsonParser alloc] init]; 
    NSDictionary *responseDict = [parser objectWithString:responseString]; 
    NSString *decodedJSON = [responseDict objectForKey:@"{\"ID\":\"Color\"}"]; 

它崩潰的最後一道防線。

+0

你對decodeJSON會有什麼結果?它看起來像你要求responseDict爲兩個鍵的對象值一次或什麼,這根本不會工作。另外,你的responseDict可能是一個NSArray,因爲你已經在第一個代碼中顯示了一個數組JSON字符串。驗證你的responseDict的返回類型,然後詳細說明你正在試圖解碼JSON的樣子,像@ @ 1:Blue「'這樣的字符串還是什麼? – jxpx777

回答

2

JSON對象是NSDictionaryNSArray s。您必須迭代數組或使用索引。例如,爲了獲得第一個元素({"ID":"1","Color":"Blue"}):

[responseDict objectAtIndex:0]; 

如果要遍歷所有的人,使用這樣的(例如,將它們打印出來的順序排列):

for(NSDictionary* e in responseDict) { 
    NSLog(@"%@", e); 
}