草庐IT

JSONDecoder

全部标签

Swift 的 JSONDecoder 在 JSON 字符串中具有多种日期格式?

Swift的JSONDecoder提供了一个dateDecodingStrategy属性,它允许我们定义如何根据DateFormatter对象解释传入的日期字符串。但是,我目前使用的API会同时返回日期字符串(yyyy-MM-dd)和日期时间字符串(yyyy-MM-ddHH:mm:ss),具体取决于属性。有没有办法让JSONDecoder处理这个问题,因为提供的DateFormatter对象一次只能处理一个dateFormat?一个拙劣的解决方案是重写随附的Decodable模型以仅接受字符串作为它们的属性并提供公共(public)Dategetter/setter变量,但这看起来像对

json - 使用 Swift 4 中的 JSONDecoder,缺少的键可以使用默认值而不是可选属性吗?

Swift4添加了新的Codable协议(protocol)。当我使用JSONDecoder时,它似乎要求我的Codable类的所有非可选属性在JSON中有键,否则会引发错误。让我的类的每个属性都是可选的似乎是不必要的麻烦,因为我真正想要的是使用json中的值或默认值。(我不希望该属性为零。)有没有办法做到这一点?classMyCodable:Codable{varname:String="DefaultAppleseed"}funcload(input:String){do{ifletdata=input.data(using:.utf8){letresult=tryJSONDeco