草庐IT

Decodable

全部标签

json - 基于 Swift Decodable 对象属性中的键的模型关系

给定JSON:[{"name":"TV","room":"LivingRoom"},{"name":"LightBulb1","room":"LivingRoom"}]structRoom:Decodable{letname:Stringletdevices:[Device]}structDevice:Decodable{letname:String}如何使用Swift4Decodable解码JSON的方式正确序列化我的模型结构?我想为设备的room属性中的每个唯一字符串创建房间,并将这些设备添加到给定房间的设备列表中。一种方法是在没有房间关系的情况下简单地映射它,然后在我获得整个设备

ios - Swift `Decodable` 不适用于嵌套的 JSON 对象,除非嵌套是一个数组

我已经开始转换一些JSON解析代码以使用新的AppleDecodable协议(protocol),并且遇到了一个感觉太基础的拦截器,在Apple的测试期间不会被遗漏,所以我想知道我是否做傻事。简而言之,我正在尝试解析这样的JSON图,因为我只是在解码,所以我认为符合Decodable应该就足够了,但从错误来看,我需要符合Codable(Decodable&Encodable)以获得所需的解码效果:{"keyString":{"nestedKey1":"value1","nestedKey1":"value1"}}它适用于这种情况:{"keyString":[{"nestedKey1":

swift - 可编码 : does not conform to protocol 'Decodable'

无法理解为什么我的类不符合Codable请注意,在我的例子中,我不需要实现方法encode和decode。publicclassLCLAdvantagePlusJackpotCache:Codable{publiclettoken:Stringpublicletamount:NSNumberpublicletmember:Boolpublicinit(token:String,amount:NSNumber,member:Bool){self.token=tokenself.amount=amountself.member=member}enumCodingKeys:String,Co

swift - 不符合 Decodable/Codable 协议(protocol)

我正在使用以下结构:structItem:Codable{varcategory:StringvarbirthDate:Datevarswitch:BoolvarweightNew:[Weight]varweightOld:ArrayvarcreatedAt:DatevaritemIdentifier:UUIDvarcompleted:BoolfuncsaveItem(){DataManager.save(self,with:itemIdentifier.uuidString)}funcdeleteItem(){DataManager.delete(itemIdentifier.uui

swift - 使用 Decodable 进行 JSON 解析时,optional 和 decodeIfPresent 有什么区别?

我第一次使用Swift4的Codable协议(protocol),我无法理解Decodable的decodeIfPresent的使用。///Decodesavalueofthegiventypeforthegivenkey,ifpresent.//////Thismethodreturns`nil`ifthecontainerdoesnothaveavalueassociatedwith`key`,orifthevalueisnull.Thedifferencebetweenthesestatescanbedistinguishedwitha`contains(_:)`call.///

swift - Codable 类不符合 Decodable 协议(protocol)

为什么我会收到“类型‘书签’不符合‘可解码’协议(protocol)”错误消息?classBookmark:Codable{weakvarpublication:Publication?varindexPath:[Int]varlocationInText=0enumCodingKeys:String,CodingKey{caseindexPathcaselocationInText}init(publication:Publication?,indexPath:[Int]){self.publication=publicationself.indexPath=indexPath}}我

swift - 在带有继承的 Swift 4 中使用 Decodable

类继承的使用是否会破坏类的可解码性。比如下面的代码classServer:Codable{varid:Int?}classDevelopment:Server{varname:String?varuserId:Int?}varjson="{\"id\":1,\"name\":\"LargeBuildingDevelopment\"}"letjsonDecoder=JSONDecoder()letitem=tryjsonDecoder.decode(Development.self,from:json.data(using:.utf8)!)asDevelopmentprint(item.

json - Swift 4 JSON Decodable 解码类型更改的最简单方法

借助Swift4的Codable协议(protocol),可以实现高水平的底层日期和数据转换策略。鉴于JSON:{"name":"Bob","age":25,"tax_rate":"4.25"}我想把它强制成下面的结构structExampleJson:Decodable{varname:Stringvarage:IntvartaxRate:FloatenumCodingKeys:String,CodingKey{casename,agecasetaxRate="tax_rate"}}日期解码策略可以将基于字符串的日期转换为日期。有什么东西可以用基于字符串的float来做吗否则我一直坚

json - 如何使用 Swift Decodable 协议(protocol)解码嵌套的 JSON 结构?

这是我的JSON{"id":1,"user":{"user_name":"Tester","real_info":{"full_name":"JonDoe"}},"reviews_count":[{"count":4}]}这是我想要保存到的结构(不完整)structServerResponse:Decodable{varid:Stringvarusername:StringvarfullName:StringvarreviewCount:IntenumCodingKeys:String,CodingKey{caseid,//Howdoigetnestedvalues?}}我看过Appl

使用 Swift Package 插件生成代码

前言不久前,我正在工作中开发一项新服务,该服务由SwiftPackage组成,该Package公开了一个类似于Decodable​协议,供我们应用程序的其余部分使用。事实上,该协议是从Decodable本身继承下来的,看起来像这样:Fetchable.switprotocolFetchable:Decodable,Equatable{}新的package将采用符合Fetchable的类型来尝试从远程或缓存的JSON数据块中解码它们。由于这项服务对应用程序的正确运行至关重要,作为这项工作的一部分,我们希望确保始终存在故障安全(fail-safe)。因此,我们让该应用程序附带了一个备用的JSON文