json - 使用顶级数组进行 Swift 4 json 解码

标签 json swift

从 API 获取 JSON 数据时,我无法正确解码。

[ 
{ 
"success": "true",
 "message": "testtt" 
} 
]

这就是我的 API 输出的样子。

正如我们所见,我的 PHP 将值输出为顶级数组。

如何在 Swift 4 中读出这些信息?

let json = try JSONDecoder().decode([API].self, from: data)

返回:

success: "true", message: "testtt"

结构如下所示:

struct API: Decodable{
    let success: String
    let message: String

    init(jsont: [String: Any]){
        success = jsont["success"] as? String ?? ""
        message = jsont["message"] as? String ?? ""
    }
}

但是我不知道如何进一步读出这些数据。

有什么想法吗?

最佳答案

无需创建自定义初始化程序。在解码 json 时,您只需使用数组类型 [API].self 即可:

struct API: Decodable{
    let success: String
    let message: String
}
<小时/>
let dataJSON = Data("""
[
    {
        "success": "true",
        "message": "testtt"
    }
]
""".utf8)
<小时/>
do {
    if let result = try JSONDecoder().decode([API].self, from: dataJSON).first {
        print(result.success)
        print(result.message)
    }
} catch {
    print(error)
}

关于json - 使用顶级数组进行 Swift 4 json 解码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52085720/

相关文章:

javascript - 基于 JSON 回调数据的重定向 URL

ios - swift plist 解码器全局 Spritekit

ios - 为什么这个数组没有按正确的顺序反转?

ios - UITableViewCell 高度自动不调整大小

ios - 如何将 UISwitch 放置在 UITableViewCell accessoryView 中?

ios - 如何使用 RealityKit 扫描二维码?

json - 计算数组中多个项目的出现次数

sql - 为 10k+ 用户保存用户数据的最佳方法

python - 保存和检索 Python 对象属性值到文件

php - 在 php 中的选择查询中添加值