我试图从JSON文件中提取信息。是否有可能JSON输出有问题?似乎有一些奇怪的编码。它来自一个博客。
JSON :
[{
"title": "A visit to McSorley\u0027s Old Ale House",
"subtitle": "",
"summary": "\u0026lt;p\u0026gt;McSorley\u0026#39;s Ale House is Manhattan\u0026#39;s oldest pub\u0026lt;/p\u0026gt;"
}]
我成功创建了NSData
对象,但NSJSONSerialization
失败,请参阅代码:
func parseJSON(jsonString: String) -> [String: AnyObject]? {
guard let data: NSData = jsonString.dataUsingEncoding(NSUTF8StringEncoding)
else { return nil }
do {
let dictionary = try NSJSONSerialization.JSONObjectWithData(data, options: []) as? [String: AnyObject]
return dictionary
} catch {
print("JSON Error: \(error)")
return nil
}
}
谢谢!
答案 0 :(得分:0)
您的代码工作正常,问题是您的JSON文件,请尝试使用另一个JSON文件,例如,以下一个:
var json = "{\"xyz \":[{\"title\": \"\",\"subtitle\": \"\",\"summary\": \"\"}]}"
func parseJSON(jsonString: String) -> [String: AnyObject]? {
guard let data: NSData = jsonString.dataUsingEncoding(NSUTF8StringEncoding)
else { return nil }
do {
let dictionary = try NSJSONSerialization.JSONObjectWithData(data, options: []) as? [String: AnyObject]
return dictionary
} catch {
print("JSON Error: \(error)")
return nil
}
}
输出结果为:
Optional(["xyz": (
{
subtitle = "";
summary = "";
title = "";
}
)])
您错过了JSON字典的密钥,如果为此我在JSON的开头添加了一些密钥以使其正常工作。不过,我强烈建议您使用SwiftyJSON以极好的方式解析JSON文件。
删除HTML字符串
extension String {
/**
Strip the HTML tags for the string passed.
- parameter code: String to strip HTML.
- returns: The new string without HTML tags.
*/
func stripHtmlTags() -> String {
return self.stringByReplacingOccurrencesOfString("<[^>]+>", withString: "", options: .RegularExpressionSearch, range: nil)
}
}
我希望这对你有所帮助。