Não é possível analisar a matriz JSON com JSONDecoder no Swift 4
Eu tenho uma matriz JSON que preciso analisar e optei por usar JSONDecoder para analisá-la.
A matriz JSON fica assim:
[{"Id":0,"Key":"key0","Name":"name0","Title":"title0"},{"Id":1,"Key":"key1","Name":"name1","Title":"title1"},{"Id":2,"Key":"key2","Name":"name2","Title":"title2"}]
O problema é que JSONDecoder cria a matriz, mas todos os campos estão vazios no objeto. Qual é o problema aqui?
Aqui está o meu arquivo de recreio. Você pode ver que todos os campos estão vazios após a análise:
//: Playground - noun: a place where people can play
import UIKit
import Foundation
class Result: Codable{
let title: String = ""
let id: Int = 0
let key: String = ""
let name: String = ""
enum CodingKeys: String, CodingKey{
case title = "Title"
case id = "Id"
case key = "Key"
case name = "Name"
}
}
let data = "[{\"Id\":0,\"Key\":\"key0\",\"Name\":\"name0\",\"Title\":\"title0\"},{\"Id\":1,\"Key\":\"key1\",\"Name\":\"name1\",\"Title\":\"title1\"},{\"Id\":2,\"Key\":\"key2\",\"Name\":\"name2\",\"Title\":\"title2\"}]".data(using: .utf8)!
let decoder = JSONDecoder()
do{
let results = try decoder.decode([Result].self, from: data)
print("Result count: \(results.count)")
for result in results{
print("Name: \(result.name)")
}
}catch let exception{
print(exception.localizedDescription)
}