2017-03-24 2 views
-1

Ich verwende NSURLSession zur Kommunikation mit einem Webservice. Wie auch immer, in der JSON von Webservice bekomme ich Strings wie diese Biblotecas de cat & aacute, Logos de Marcas, also Biblotecas de cat & aacute; Logos de Marcas. Ich muss den Text Katze & aacute loswerden, Logos und bekomme die ursprüngliche Zeichenfolge. Wie kann ich das machen. Ich verwende diesen Code zum Parsen des JSON.Wie behandelt man Apostroph in JSON vom Webservice?

guard let json = try JSONSerialization.jsonObject(with: data, options: []) as? [String:Any] else{ 

       self.showalertview(messagestring: parseError) 
       return 
      } 
+0

Kann ich Ihre Probe Antwort sehen? –

+0

@anilkukdeja { data = ( { description = "Biblotecas de cat & aacute; Logos de Marcas"; name = "Biblotecas de cat & aacute; Logos de Marcas"; } ); msg = u00e9xito; Ergebnis = 1; } –

Antwort

1

Der beste Weg ist, den Besitzer des Webservice zu bitten, UTF-8-konformen Text zu senden.

Wenn dies nicht möglich ist NSAttributedString können HTML-Entitäten in einer sehr bequemen Weise dekodieren, ist dies eine String Erweiterung Hinzufügen der berechneten Eigenschaft htmlDecoded. Da die Umwandlung aus mehreren Gründen ist der Rückgabewert ausfallen kann ein optional:

extension String { 
    var htmlDecoded : String? { 
     guard let encodedString = self.data(using: .utf8) else { return nil } 
     let options : [String:Any] = [NSDocumentTypeDocumentAttribute: NSHTMLTextDocumentType, 
               NSCharacterEncodingDocumentAttribute: String.Encoding.utf8.rawValue] 
     return try? NSAttributedString(data: encodedString, options: options, documentAttributes: nil).string 
    } 
} 

Und es verwenden:

let string = "Biblotecas de catálogos de Marcas" 
print(string.htmlDecoded) // "Biblotecas de catálogos de Marcas" 
+0

Danke Ich werde diesen Code versuchen. –

Verwandte Themen