2014-08-28 56 views
-3

嗨我收到以下JSON作爲響應,但在嘗試將其解析爲NSArray時出現錯誤。iOS:JSON解析到NSArray?

NSArray * resp = [JSON objectForKey @「CONVCOLL」];

它拋出上述行異常。請幫助

(
{ 
     ACT1 = "<null>"; 
     ACT2 = "<null>"; 
     AUTRECERTI = "<null>"; 
     AUTRESTI = "<null>"; 
     CONVCOLL = "CCT romande du second oeuvre"; 
     DESCPHILO = "<null>"; 
     DESCSUCC = "<null>"; 
     DIRECTION = "M. Aldo Zoppi, chef d'entreprise"; 
     DISPHYGSEC = 1; 
     FILIALES = "<null>"; 
     ISO14000 = 0; 
     ISO9000 = 0;    
     ZONEACT = "La Riviera, Lavaux et Lausanne"; 
    }, 
     { 
     ACT1 = "<null>"; 
     ACT2 = "<null>"; 
     AUTRECERTI = "<null>"; 
     AUTRESTI = "<null>"; 
     CONVCOLL = "<null>"; 
     DESCPHILO = "<null>"; 
     DESCSUCC = "<null>"; 
     DIRECTION = "<null>"; 
     DISPHYGSEC = 0; 
     FILIALES = "<null>"; 
     ISO14000 = 2; 
     ISO9000 = 1;    
     ZONEACT = "<null>"; 
    }, 
     { 
     ACT1 = "<null>"; 
     ACT2 = "Volets en aluminium"; 
     AUTRECERTI = "<null>"; 
     AUTRESTI = "<null>"; 
     CONVCOLL = "<null>"; 
     DESCPHILO = "<null>"; 
     DESCSUCC = "<null>"; 
     DIRECTION = "M. Denis Zurbuchen, directeur et M. Jacques Zurbuchen, directeur d'exploitation"; 
     DISPHYGSEC = 1; 
     FILIALES = "<null>"; 
     ISO14000 = 0; 
     ISO9000 = 0;    
     ZONEACT = "<null>"; 
    } 
) 
+0

它看起來像你的JSON是一個JSONArray,而不是JSONObject,通過JSONObjects的JSONArray循環,並在每個JSONOBj等等,在上面打電話。 – wottle 2014-08-28 12:38:07

+0

閱讀(幷包含)例外消息或其他錯誤症狀。 – user2864740 2014-08-28 12:40:49

+0

-1不包括確切的異常消息。 (但人們可以猜到它就像是「無法識別的選擇器」 - 最外層的「層」是一個數組,而不是字典)。 – 2014-08-28 12:42:47

回答

1

您的網址回覆爲NSData的實例。所以,你可以分析它,並遍歷您收到的數組:

NSArray *JSONArray = [NSJSONSerialization JSONObjectWithData:responseData options:0 error:nil]; 

for(NSDictionary *entry in JSONArray) { 
    NSLog(@"CONVCOLL: %@", [entry objectForKey:@"CONVCOLL"]); 
} 
+0

他已經解析了數據他的轉儲是NSArray,而不是JSON – 2014-08-28 12:43:35

+0

當JSON是解析的數據,所以你有一個數組,這意味着,你必須正確地訪問它的值,你必須循環條目(就像在我的代碼中),或者你必須通過索引訪問:[[JSON objectAtIndex:0];'。你的數組包含'NSDictionaries'。這意味着(也在我的代碼中):'[[JSON objectAtIndex:0] objectForKey:@「CONVCOLL」];'' – 2014-08-28 12:47:55

0

試試下面的代碼...

NSString *response=[request responseString]; 

    NSArray *responseArray=[response JSONValue]; 

    for(NSDictionary *dict in responseArray) 
    { 

    self.convcoll.text=[dict objectForKey:@"CONVCOLL"]; 

    } 

如果您正在使用ASIFormDataRequest解析..

NSArray * resp = [JSON [email protected]"CONVCOLL"];// this way of retrieving is not correct for above JSON.. 

希望它幫助你..