gpt4 book ai didi

json - 将 NSData 对象转换为 NSDictionary 时出现问题

转载 作者:行者123 更新时间:2023-11-30 13:46:18 30 4
gpt4 key购买 nike

我正在尝试从 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
}
}

谢谢!

最佳答案

您的代码工作正常,问题出在您的 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 文件。

Removing the HTML String

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

希望这对您有帮助。

关于json - 将 NSData 对象转换为 NSDictionary 时出现问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34889093/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com