2017-02-07 3 views
0

et je veux obtenir des valeurs hors de cela.NSJSONSerialization ne fonctionne pas avec emoji

Chaîne

"[{\" VisitorId \ ": \" dbd1c1d6-8348-4674-9e48-65137bdc5c14 \ », \ "OperatorID \": null, \ "VisitorSignalId \": \ "6c454fc2-cf74-4010-aecd-93d93408ad24 \", \ "Type \": \ "Visiteur \", \ "Messagerie \": \ "ksksksksksk a rejoint le clavardage!", \ "IsJoin \": true, \ "MessageTime \": \ "2017-02-07 05:10:28 \", \ "Fichier \": null, \ "MessageType \": \ "JoinMessage \", \ "Nom \": \ "ksksksksksk \", \ "Email \": \ "[email protected] \", \ "IP \": \ "123.231.110.188 \", \ "Page \": \ "http://www.sathyabaman.com/ \", \ " Note \ ": \" Aucune évaluation \ ", \" Image \ ": null, \" CurrentOpImage \ ": null, \" FileUploadDetails \ ": null, \" NomPremierOpérateur \ ": null, \" OperatorCo unt \ ": 1, \" RequestTranscript \ ": false, \" Pays \ ": null, \" OS \ ": null, \" Broswer \ ": null, \" Mobile \ ": null, \" iso_code \ ": null}, {\" VisitorId \ ": \" dbd1c1d6-8348-4674-9e48-65137bdc5c14 \ ", \" OpérateurID \ ": null, \" IDSélecteur_dispositif \ ": null, \" Type \ ": \" Visitor \ ", \" Messagerie \ ": \" lkkhnl \ ", \" IsJoin \ ": false, \" MessageTime \ ": \" 2017-02-07 05:10:58 \ ", \" Fichier \ ": null, \" MessageType \ ": \" NormalMessage \ ", \" Nom \ ": \" ksksksksksk \ ", \" Email \ ": \" [email protected] \ ", \" IP \ ": \ "123.231.110.188 \", \ "Page \": \ "http://www.sathyabaman.com/ \", \ "Évaluation \": \ "Aucune évaluation \", \ "Image \": null, \ "CurrentOpImage \": null, \ "FileUploadDetails \": null, "FirstOperatorName": null, \ "OperatorCount \": 1, \ "RequestTranscript \": false, \ "Pays \": null, \ "OS \": null, \ "Broswer \ ": null, \" Mobile \ ": null, \" code_iso \ ": null}, {\" VisitorId \ ": null, \" ID_opérateur \ ": \" 81aebba9-ddc3-4f58-b1af-ac912d23a41e \ " , \ "VisitorSignalId \": null, \ "Type \": \ "Opérateur \", \ "Messagetext \": \ "comment puis-je vous aider aujourd'hui? \", IsJoin \ ": false, \" Message Time \ ": \" 2017-02-07 10:41:11 \ ", \" Fichier \ ": null, \" MessageType \ ": \" NormalMessage \ ", \" Nom \ ": \" sathya \ ", \" Email \ ": null, \" IP \ ": null, \" Page \ ": null, \" Évaluation \ ": null, \" Image \ ": null, \" CurrentOpImage \ ": null, \ "FileUploadDetails \": null, \ "PremierNomOperator \": \ "sathya \", \ "OpérateurCount \": 1, \ "RequestTranscript \": null, \ "Pays \": null, \ "OS \": null, \ "Broswer \": null, \ "Mobile \": null, \ "code_iso \": null}, {\ "VisitorId \": \ "dbd1c1d6-8348-4674-9e48-65137bdc5c14 \", \ " OperatorID \ ": null, \" VisitorSignalId \ ": \" 6c454fc2-cf74-4010-aecd-93d93408ad24 \ ", \" Type \ ": \" Visitor \ ", \" Messagetext \ ": \" Le visiteur n'est pas plus actif \ ", \" IsJoin \ ": false, \" MessageTime \ ": \" 2/7/2017 5:11:53 AM \ ", \" Fichier \ ": null, \" MessageType \ " : \ "TransferMessage \", \ "Nom \": \ "ksksksksksk \", \ "Email \": \ "[email protected] \", \ "IP \": \ "123.231.110.188 \", \ "Page \": \ "http://www.sathyabaman.com/ \", \ "Évaluation \": \ "Aucune évaluation \", \ "Image \": null, \ "CurrentOpIm age \ ": null, \" FileUploadDetails \ ": null, \" Nom de l'utilisateur \ ": null, \" Numéro de l'opérateur \ ": 1, \" RequestTranscript \ ": false, \" Pays \ ": null, \" OS \ ": null, \" Broswer \ ": null, \" Mobile \ ": null, \" code_iso \ ": null}, {\" VisitorId \ ": null, \" OpérateurID \ ": \" 81aebba9-ddc3- 4f58-b1af-ac912d23a41e \ ", \" VisitorSignalId \ ": null, \" Type \ ": \" Opérateur \ ", \" Messagetext \ ": \" Hi \ ", \" IsJoin \ ": false, \" MessageTime \ ": \" 2017-02-07 10:47:54 \ ", \" Fichier \ ": null, \" MessageType \ ": \" NormalMessage \ ", \" Nom \ ": \" sathya \ ", \" Email \ ": null, \" IP \ ": null, \" Page \ ": null, \" Évaluation \ ": null, \" Image \ ": null, \" CurrentOpImage \ ": null, \ "FileUploadDetails \": null, \ "PremierNomOperator \": \ "sathya \", \ "OpérateurCount \": 1, \ "RequestTranscript \": null, \ "Pays \": null, \ "OS \": null, \ "Broswer \": null, \ "Mobile \": null, \ "code_iso \": null}, {\ "VisitorId \": null, \ "ID_opérateur \": \ "81aebba9-ddc3-4f58- b1af-ac912d23a41e \ ", \" VisitorSignalId \ ": null, \" Type \ ": \" Opérateur \ ", \" Messagetext \ ": \" comment puis-je vous aider aujourd'hui?\ ", \" IsJoin \ ": false, \" MessageTime \ ": \" 2017-02-07 10:50:07 \ ", \" Fichier \ ": null, \" MessageType \ ": \" NormalMessage \ ", \" Nom \ ": \" sathya \ ", \" Email \ ": null, \" IP \ ": null, \" Page \ ": null, \" Évaluation \ ": null, \" Image \ ": null, \" CurrentOpImage \ ": null, \" FichierUploadDetails \ ": null, \" NomPremierOpérateur \ ": \" sathya \ ", \" OpérateurCount \ ": 1, \" RequestTranscript \ ": null, \ "Pays \": null, \ "OS \": null, \ "Broswer \": null, \ "Mobile \": null, \ "code_iso \": null}, {\ "VisitorId \": null, \ "OperatorID \": \ "81aebba9-ddc3-4f58-b1af-ac912d23a41e \", \ "VisiteurSignal \": null, \ "Type \": \ "Opérateur \", \ "Messagetext \": \ "\", \ "IsJoin \": false, \ "MessageTime \": \ "2017-02-07 10:57:13 \", \ "Fichier \": null, \ "MessageType \": \ "NormalMessage \", \ "Nom \": \ "sathya \", \ "Email \": null, \ "IP \": null, \ "Page \": null, \ "Évaluation \": null, \ "Image \": null, "CurrentOpImage": null, "FileUploadDetails": null, "FirstOperatorName": \ "sathya \", \ "OperatorCount \": 1, \ "RequestTranscript \": null, \ "Pays \ ": null, \" OS \ ": null, \" Broswer \ ": null, \" Mobi le \ ": null, \" iso_code \ ": null}]"

Méthode

+ (void) showCurrentHistory:(NSString *) historyString { 

    NSString* processed = [historyString stringByReplacingOccurrencesOfString:@"\\\"" withString:@"\""]; 

    NSString* withotExtras = [[processed substringFromIndex:1] substringToIndex:[processed length] - 2]; 
    NSData *data = [[NSData alloc] initWithBytes:[withotExtras UTF8String] length:withotExtras.length]; 
    NSError *error; 

    NSMutableArray* jsonArray = [NSJSONSerialization JSONObjectWithData:data options:NSJSONReadingMutableContainers error:&error]; 

    for (NSDictionary *dic in jsonArray) { 
     NSString *VisitorId   = [dic objectForKey:@"VisitorId"]; 
     NSString *VisitorSignalId = [dic objectForKey:@"VisitorSignalId"]; 
     NSString *Type    = [dic objectForKey:@"Type"]; 
     NSString *Messagetext  = [dic objectForKey:@"Messagetext"]; 
     NSString *MessageType  = [dic objectForKey:@"MessageType"]; 
     NSString *MessageTime  = [dic objectForKey:@"MessageTime"]; 
     NSString *Image    = [dic objectForKey:@"Image"]; 
     NSString *FileUploadDetails = [dic objectForKey:@"FileUploadDetails"]; 
     NSString *FirstOperatorName = [dic objectForKey:@"FirstOperatorName"]; 
     NSString *Rating   = [dic objectForKey:@"Rating"]; 

     NSLog(@"----------------------- Current Chat History --------------------------------"); 
     NSLog(@"VisitorId   : %@" , VisitorId); 
     NSLog(@"VisitorSignalId  : %@" , VisitorSignalId); 
     NSLog(@"Type    : %@" , Type); 
     NSLog(@"Messagetext   : %@" , Messagetext); 
     NSLog(@"MessageType   : %@" , MessageType); 
     NSLog(@"MessageTime   : %@" , MessageTime); 
     NSLog(@"Image    : %@" , Image); 
     NSLog(@"FileUploadDetails : %@" , FileUploadDetails); 
     NSLog(@"FirstOperatorName : %@" , FirstOperatorName); 
     NSLog(@"Rating    : %@" , Rating); 
     NSLog(@"------------------------------------------------------------------------------"); 

     MessageItemObject *item = [[MessageItemObject alloc] init]; 
     [item setVisitorId:VisitorId]; 
     [item setVisitorSignalId:VisitorSignalId]; 
     [item setType:Type]; 
     [item setMessagetext:Messagetext]; 
     [item setMessageType:MessageType]; 
     [item setMessageTime:MessageTime]; 
     [item setImage:Image]; 
     [item setFileUploadDetails:FileUploadDetails]; 
     [item setFirstOperatorName:FirstOperatorName]; 
     [item setRating:Rating]; 

     if (messagesList.count == 0) { 
      messagesList = [[NSMutableArray alloc] init]; 
      [messagesList addObject:item]; 

      NSMutableDictionary *dic = [NSMutableDictionary dictionary]; 
      [dic setValue:@"Adding new chatting" forKey:@"Adding new Chatting"]; 

      [[NSNotificationCenter defaultCenter] 
      postNotificationName:@"PassData" 
      object:nil 
      userInfo:dic]; 
     } else { 
      [messagesList addObject:item]; 

      NSMutableDictionary *dic = [NSMutableDictionary dictionary]; 
      [dic setValue:@"Adding new chatting" forKey:@"Adding new Chatting"]; 

      [[NSNotificationCenter defaultCenter] 
      postNotificationName:@"PassData" 
      object:nil 
      userInfo:dic]; 
     } 
    } 
} 

Cette méthode fonctionne bien s'il n'y a pas emoji, puisque cette piqûre a un seul \ emoji , NSJSONSerialization ne fonctionne pas. Quelqu'un peut-il m'aider à résoudre ce problème.

+0

Avez-vous vérifié cela? http://stackoverflow.com/questions/23814394/nsjsonserialization-and-emoji – User511

+0

Vous devez remplacer ce "deux emoji Hear" par une chaîne vide si vous ne l'utilisez pas. OU remplacez-le par son unicode. – Wolverine

+0

@ Utilisateur511 qui a travaillé TNX. –

Répondre

1

Le problème est que vous êtes en train de coder en dur la chaîne JSON et d'y apporter des modifications, n'apportez aucune modification avec votre chaîne JSON et que vous la convertissez directement en NSData.

NSData *data = [historyString dataUsingEncoding:NSUTF8StringEncoding]; 
NSError *error; 
NSMutableArray* jsonArray = [NSJSONSerialization JSONObjectWithData:data options:NSJSONReadingMutableContainers error:&error]; 
NSLog(@"Array - %@", jsonArray); 
1

Essayez ceci.

chaîne Convertir avec emoji chaîne avec unicode comme ci-dessous

NSData *data = [strEmoji dataUsingEncoding:NSNonLossyASCIIStringEncoding]; 
NSString *unicodeString = [[NSString alloc] initWithData:data encoding:NSUTF8StringEncoding]; 

Et si vous voulez montrer que emoji quelque part, vous pouvez reconvertir pour emoji.

NSData *data = [unicodeString dataUsingEncoding:NSUTF8StringEncoding]; 
NSString *emojiString = [[NSString alloc] initWithData:data encoding:NSNonLossyASCIIStringEncoding];