【发布时间】:2019-12-08 14:45:32
【问题描述】:
所以这可能是一个非常基本的问题,但我很好奇您将如何使用 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)")
}
我认为只需将类型转换为 String 就足够了,但我只是收到以下错误:“错误:无法读取数据,因为它的格式不正确。”
我知道有更好的方法来解析 JSON,例如使用 Codable,但我只是想了解它是如何工作的,然后再继续解决这个问题。
【问题讨论】:
-
它不是 JSON,所以你无法解析它。捕获数据并将其编码为 UTF。
-
@DanielStorm 这将包括引号和换行符,它们几乎肯定不是值的一部分。这是一个 JSON 字符串。需要对其进行解析以获得预期值。
标签: json swift nsjsonserialization