从我的API获取JSON数据时,我无法正确解码它。
[
{
"success": "true",
"message": "testtt"
}
]
这是我的API输出的样子。
我们可以看到,我的PHP将这些值输出为顶级数组。
如何在Swift 4中读取此信息?
let json = try JSONDecoder().decode([API].self, from: data)
返回:
成功:“ true”,消息:“ testtt”
这是该结构的样子:
struct API: Decodable{
let success: String
let message: String
init(jsont: [String: Any]){
success = jsont["success"] as? String ?? ""
message = jsont["message"] as? String ?? ""
}
}
但是我不知道如何进一步读取这些数据。
有什么想法吗?
答案 0 :(得分:0)
无需创建自定义初始化程序。解码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)
}
答案 1 :(得分:0)
如果要访问,请再添加一个类似的结构
struct data: Decodable{
let API: [API]
}
然后,您必须在程序中像上面一样解码
let json = try JSONDecoder().decode(data.self, from: data)
并访问它们
data.API[i].success
data.API[i].message