如何从webservice处理JSON中的撇号?

时间:2017-03-24 07:13:10

标签: ios json string swift3

我正在使用NSURLSession与Web服务进行通信。然而,在Webservice的JSON中我得到了像这样的Biblotecas de cat& amp; aacute; logos de Marcas,即BiblotecasdecatálogosdeMarcas。我需要摆脱文本cat& aacute; logos并获取原始字符串。我怎样才能做到这一点。 我正在使用此代码来解析JSON。

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

                self.showalertview(messagestring: parseError)
                return
            }

1 个答案:

答案 0 :(得分:2)

最好的方法是让网络服务的所有者发送符合UTF-8的文本。

如果无法做到这一点,NSAttributedString可以非常方便地解码HTML实体,这是添加计算属性String的{​​{1}}扩展名。由于转换可能由于多种原因而失败,因此返回值是可选的:

htmlDecoded

并使用它:

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
    }
}