You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

调试器中如何格式化打印API调用返回的JSON响应?

调试时如何格式化打印API返回的JSON数据

我之前调试API响应的时候也碰到过一模一样的问题!直接po data只会输出一堆晦涩的二进制描述,debugPrint(data)在LLDB里又没反应,想要看到整齐的JSON结构确实有点头疼。试试下面这几个实用方法:

1. 直接用LLDB命令解析并格式化

不用改代码,在调试器里直接敲这条命令(把data换成你的变量名):

po try? JSONSerialization.jsonObject(with: data, options: [])

这会把Data转成可打印的字典或数组,虽然排版不是最规整,但能快速看到数据结构。如果想要更漂亮的缩进格式,用这条进阶命令:

po try? JSONSerialization.data(withJSONObject: JSONSerialization.jsonObject(with: data, options: []), options: .prettyPrinted).flatMap { String(data: $0, encoding: .utf8) }

执行后就能得到你想要的{ "firstName" : "John", "lastName" : "Doe", ... }这种格式化JSON了。

2. 写个Swift扩展,一键调用

如果经常需要调试JSON,建议给Data加个扩展,以后调试更高效:

extension Data {
    func prettyJSON() -> String? {
        guard let jsonObj = try? JSONSerialization.jsonObject(with: self),
              let prettyData = try? JSONSerialization.data(withJSONObject: jsonObj, options: .prettyPrinted),
              let prettyString = String(data: prettyData, encoding: .utf8) else {
            return nil
        }
        return prettyString
    }
}

之后在调试器里只需要输入:

po data.prettyJSON()

就能直接拿到格式化好的JSON字符串,省心又省力。

3. 用Xcode自带的预览功能(最省心!)

其实Xcode早就帮我们想到了——当调试暂停时,找到data变量,点击它右侧的「眼睛」图标(预览按钮),在弹出的预览窗口顶部切换到「JSON」标签页,就能直接看到完美格式化的JSON结构了,连命令都不用敲!

我现在调试API响应基本都用这个方法,直观又快捷。


内容的提问来源于stack exchange,提问作者Prabhu

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.19 09:07:39