Obtenir des valeurs de NSDictionary

Salut, je suis nouveau sur le développement iOS. Je veux get une réponse et append ces valeurs à la variable.

Je l'ai essayé mais je reçois la réponse ci-dessous. Je ne comprends pas pourquoi il y a des barres obliques dans cette réponse.

@"[{\"VisitorID\":\"2864983a-e26b-441a-aedf-84e2a1770b8e\",\"ProfileID\":\"69c02265-abca-4716-8a2f-ac5d642f876a\",\"CompanyID\":null,\"VisitorName\":\"kanasalingam\",\"OperatorName\":\"baman\",\"Image\":null,\"isocode\":\"lk\",\"CurrentOperator\":[\"69c02265-abca-4716-8a2f-ac5d642f876a\"]},{\"VisitorID\":\"133bc108-b3bf-468a-9397-e1b0dba449db\",\"ProfileID\":\"69c02265-abca-4716-8a2f-ac5d642f876a\",\"CompanyID\":null,\"VisitorName\":\"kumar\",\"OperatorName\":\"baman\",\"Image\":null,\"isocode\":\"lk\",\"CurrentOperator\":[\"69c02265-abca-4716-8a2f-ac5d642f876a\"]}]" 

J'ai essayé ceci:

 - (void) sendOtherActiveChats:(NSDictionary *) chatDetails{ NSLog(@"inside sendOtherActiveChats"); NSLog(@"otherDetails Dictionary : %@ ", chatDetails); NSSsortingng *VisitorID = [chatDetails objectForKey:@"VisitorID"]; NSSsortingng *ProfileID = [chatDetails objectForKey:@"ProfileID"]; NSSsortingng *CompanyID = [chatDetails objectForKey:@"CompanyID"]; NSSsortingng *VisitorName = [chatDetails objectForKey:@"VisitorName"]; NSSsortingng *OperatorName = [chatDetails objectForKey:@"OperatorName"]; NSSsortingng *isocode = [chatDetails objectForKey:@"isocode"]; NSLog(@"------------------------Other Active Chats -----------------------------------"); NSLog(@"VisitorID : %@" , VisitorID); NSLog(@"ProfileID : %@" , ProfileID); NSLog(@"CompanyID : %@" , CompanyID); NSLog(@"VisitorName : %@" , VisitorName); NSLog(@"OperatorName : %@" , OperatorName); NSLog(@"countryCode: %@" , isocode); NSLog(@"------------------------------------------------------------------------------"); } 

Quelqu'un peut-il m'aider à get les valeurs de cette string?

Vous obtenez le tableau de dictionary en réponse, mais votre réponse est en string de sorte que vous convertissez en NSArray utilisant NSJSONSerialization comme ceci pour convertir votre string de réponse en NSData et ensuite utiliser cette donnée avec JSONObjectWithData: pour en get un tableau.

 NSSsortingng *jsonSsortingng = @"[{\"VisitorID\":\"2864983a-e26b-441a-aedf-84e2a1770b8e\",\"ProfileID\":\"69c02265-abca-4716-8a2f-ac5d642f876a\",\"CompanyID\":null,\"VisitorName\":\"kanasalingam\",\"OperatorName\":\"baman\",\"Image\":null,\"isocode\":\"lk\",\"CurrentOperator\":[\"69c02265-abca-4716-8a2f-ac5d642f876a\"]},{\"VisitorID\":\"133bc108-b3bf-468a-9397-e1b0dba449db\",\"ProfileID\":\"69c02265-abca-4716-8a2f-ac5d642f876a\",\"CompanyID\":null,\"VisitorName\":\"kumar\",\"OperatorName\":\"baman\",\"Image\":null,\"isocode\":\"lk\",\"CurrentOperator\":[\"69c02265-abca-4716-8a2f-ac5d642f876a\"]}]"; NSData *data = [jsonSsortingng dataUsingEncoding:NSUTF8SsortingngEncoding]; NSError *e; NSMutableArray *jsonArray = [NSJSONSerialization JSONObjectWithData:data options:NSJSONReadingMutableContainers error:&e]; 

Maintenant, parcourez le tableau et accédez à chaque dictionary.

 for (NSDictionary *dic in jsonArray) { NSLog(@"%@",[dic objectForKey:@"VisitorID"]); ... and so on. } 

Vous devez d'abord parsingr votre string.

 NSSsortingng *aSsortingng = @"[{\"VisitorID\":\"2864983a-e26b-441a-aedf-84e2a1770b8e\",\"ProfileID\":\"69c02265-abca-4716-8a2f-ac5d642f876a\",\"CompanyID\":null,\"VisitorName\":\"kanasalingam\",\"OperatorName\":\"baman\",\"Image\":null,\"isocode\":\"lk\",\"CurrentOperator\":[\"69c02265-abca-4716-8a2f-ac5d642f876a\"]},{\"VisitorID\":\"133bc108-b3bf-468a-9397-e1b0dba449db\",\"ProfileID\":\"69c02265-abca-4716-8a2f-ac5d642f876a\",\"CompanyID\":null,\"VisitorName\":\"kumar\",\"OperatorName\":\"baman\",\"Image\":null,\"isocode\":\"lk\",\"CurrentOperator\":[\"69c02265-abca-4716-8a2f-ac5d642f876a\"]}]"; NSData *data = [aSsortingng dataUsingEncoding:NSUTF8SsortingngEncoding]; id json = [NSJSONSerialization JSONObjectWithData:data options:0 error:nil]; NSLog(@"%@",[[json objectAtIndex:0] objectForKey:@"VisitorID"]); 

Donc vous avez une string JSON et un array de 2 objects. Alors écrivez le code suivant

Cela convertira la string JSON en Array

 NSData *myJSONData = [YOUR_JSON_STRING dataUsingEncoding:NSUTF8SsortingngEncoding]; NSError *error; NSMutableArray *arrayResponse = [NSJSONSerialization JSONObjectWithData:myJSONData options:NSJSONReadingMutableContainers error:&error]; 

Maintenant, utilisez pour la boucle et imprimer datatables comme

 for (int i = 0; i < arrayResponse.count; i++) { NSDictionary *dictionaryTemp = [arrayResponse objectAtIndex:i]; NSLog(@"VisitorID : %@",[dictionaryTemp valueForKey:@"VisitorID"]); NSLog(@"ProfileID : %@",[dictionaryTemp valueForKey:@"ProfileID"]); NSLog(@"CompanyID : %@",[dictionaryTemp valueForKey:@"CompanyID"]); NSLog(@"VisitorName : %@",[dictionaryTemp valueForKey:@"VisitorName"]); } 

Maintenant, il y a de bonnes chances que vous obteniez NULL pour certaines keys et cela peut causer un crash. Donc, évitez ces crash en utilisant des validations Null .