我有一个需要解析的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)
}
删除常量属性的初始值
class Result: Codable{
let title: String
let id: Int
let key: String
let name: String
// ...
}
(或将属性设为)。JSON解码器无法设置初始化的常量属性。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句