nix*_*des 1 json nsjsonserialization swift
所以这可能是一个非常基本的问题,但我很好奇你将如何处理在 Swift 中使用 JSONSerialization 解析作为单个字符串返回的 JSON 对象。所以我在玩一个免费的哈利波特 API 并注意到其中一个路由返回一个字符串(https://www.potterapi.com/v1/sortinghat)并且它给出的响应只是一个字符串哈利波特里的四栋房子。
"Ravenclaw"
下面是我的尝试。
do {
let json = try JSONSerialization.jsonObject(with: data, options: []) as? String
print("json: \(json)")
} catch {
print("Error: \(error.localizedDescription)")
}
Run Code Online (Sandbox Code Playgroud)
我认为简单地将类型转换为 aString就足够了,但我只是收到以下错误:“错误:无法读取数据,因为它的格式不正确。 ”
我知道有更好的方法来解析 JSON,例如使用 Codable,但我只是想在继续解决这个问题之前了解它是如何工作的。
JSONSerialization 是错误的工具。你想使用 JSONDecoder,它在 Swift 中更有用:
let json = Data("""
"Ravenclaw"
""".utf8)
let result = try JSONDecoder().decode(String.self, from: json)
Run Code Online (Sandbox Code Playgroud)
请注意,这需要 iOS 13.1 或 macOS 10.15.1。否则,您将需要使用@vadian 的回答。
| 归档时间: |
|
| 查看次数: |
984 次 |
| 最近记录: |