【发布时间】:2018-10-11 01:29:24
【问题描述】:
我有 json 数据来自服务器端。
如果我使用下一个代码,我会得到一个不漂亮的打印行字符串:
print(String(bytes: jsonData, encoding: String.Encoding.utf8))
为了让它打印得漂亮,我使用了下一个代码:
if let json = try? JSONSerialization.jsonObject(with: jsonData, options: .mutableContainers) {
if let prettyPrintedData = try? JSONSerialization.data(withJSONObject: json, options: .prettyPrinted) {
print(String(bytes: prettyPrintedData, encoding: String.Encoding.utf8) ?? "NIL")
}
}
但这似乎不是最好的方法。
那么有人知道如何漂亮地打印传入的 jsonData 来打印它吗?
【问题讨论】:
-
“但似乎这不是最好的方法。”到底有什么问题?
-
@Alexander,错误的是,此代码将 jsonData 转换为 jsonObject,而不是将 jsonObject 转换为 jsonData。这就像一项需要做两次的工作。
-
jsonData最初来自哪里?在你需要打印的地方,你有它生成的源对象吗? -
@Alexander,我使用 Alamofire 发送请求。响应包含 json 数据。所以我想在应用收到响应后立即打印它
-
漂亮的打印需要在所有正确的位置放置空白。确定所有正确的位置与反序列化 JSON 几乎相同,唯一的区别是您不需要解释解析的字段来构建对象图。但这不会花费太多时间,因此编写一个单独的 JSON 解析器来解析字符串只是为了漂亮打印是很愚蠢的
标签: json swift pretty-print