). Инициализированные постоянные свойства не могут быть установлены декодером JSON.
я есть массив JSON, который мне нужно проанализировать, и я решил использовать JSONDecoder для его анализа.
JSON массив выглядит так:
[{"Id":0,"Key":"key0","Name":"name0","Title":"title0"},{"Id":1,"Key":"key1","Name":"name1","Title":"title1"},{"Id":2,"Key":"key2","Name":"name2","Title":"title2"}]
Проблема в том, что JSONDecoder создает массив, но все поля в объекте пусты. В чем здесь проблема?
Вот мой файл детской площадки. Вы можете видеть, что все поля пусты после разбора:
//: 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)
}