【发布时间】:2018-07-30 05:00:36
【问题描述】:
在调试时试图弄清楚如何从 API 中漂亮地打印我的响应的 json 值:
let session = URLSession(configuration: .default)
let task = session.dataTask(with: urlRequest) { data, response, error in
completion(data, response, error)
}
在调试器中,如果我做 po 数据,我会得到这样的结果:
如何打印出数据对象中的实际 json 结构?希望看到这样的东西:
{ "firstName" : "约翰", "lastName" : "Doe", ... }
po debugPrint(data) 在这种情况下不输出任何内容。
【问题讨论】:
-
@Alexander 你读过这个问题吗?它与您的“重复”完全无关,除此之外它也与 JSON 有关。一个问题是关于如何输出 JSON 进行调试,另一个是关于解析 JSON 数据的问题。 不是重复的。
-
@dr_barto
output JSON for debugging不,不是。 OP 有一个Data的实例,其中包含 jason 编码的文本(显示的字节为 UTF8 表示{"mes),尚未解析。为了让 OP 获得他正在寻找的漂亮打印的调试输出,他需要先解析它。 -
@Alexander 是的,这不是重复的。链接的答案没有回答我关于调试时如何获取 json 的问题...
-
正确答案是
po String(decoding: response.data!, as: UTF8.self) -
我通过谷歌找到了这个。它绝对不是重复的。问题在于能够在调试器中检查 API 调用的响应,而无需为此修改代码。最好的方法是在 Xcode 调试器中右键单击本地的
data变量,然后单击Add Expression...然后您可以输入此表达式String(data: data, encoding: .utf8)它将在调试器中创建一个新的字符串变量(而不是在您的source),它可以让您从响应中读取原始数据。
标签: swift xcode debugging xcode9