我有一个像这样的JSON响应:我目前将我的可解码结构设计如下:structPortfolioResponseModel:Decodable{vardataset:DatasetstructDataset:Decodable{vardata:Array//Icannotuse[Any]here...structPortfolioData:Decodable{//howtoextractthisdata?}}}问题是,我如何提取数组中的数据,它的值可以是Double或String。这是在playground上运行的示例字符串:letmyJSONArray="""{"dataset":{"d
我需要将Codable添加到两个类中。一个是CLLocationCoordinate2D,第二个是CLCircularRegion。我对CLLocationCoordinate2D没有任何问题,它可以通过这样做来工作:extensionCLLocationCoordinate2D:Codable{publicenumCodingKeys:String,CodingKey{caselatitudecaselongitude}publicfuncencode(toencoder:Encoder)throws{varcontainer=encoder.container(keyedBy:Co
我正在尝试解析一个JSON数组,它可以是{"config_data":[{"name":"illuminate","config_title":"Blink"},{"name":"shoot","config_title":"Fire"}]}也可以是以下类型{"config_data":["illuminate","shoot"]}甚至{"config_data":[25,100]}为了使用JSONDecoder解析它,我创建了一个结构,如下所示-StructModel:Codable{varconfig_data:[Any]?enumCodingKeys:String,CodingK
我正在使用Swift4Codable并且我正在从我的网络服务接收这个JSON:{"status":"success","data":{"time":"00:02:00","employees":[{"id":001,"name":"foo"},{"id":002,"name":"bar"}]}}我只想将员工数组解码为员工对象(时间属性只会保存一次),但没有任何效果。我阅读了很多关于Swift4Codable的Material,但不知道如何解码这个数组。编辑:我的员工类(class):importFoundationstructEmployee:Codable{varid:Intvart
假设我有这样一本字典:{"user_data":{"id":3,"name":"DamianD","email":"aaa@aaa.pl"},"status":true}如何使用Codable协议(protocol)将user_data解码为这样的struct:structUser:Codable{privateenumCodingKeys:String,CodingKey{caseidcaseusername="name"caseemail}letid:Intletusername:Stringletemail:String}我是否需要将这个子字典转换成数据,或者有更简单的方法吗?
我目前正在尝试使用PropertyListEncoder和Swift4Codable协议(protocol)解码属性列表。我尝试了一些基本类型(字符串、整数、..),这些都工作正常,但我无法解码URL。我阅读了多篇关于这个主题的文章,我很确定这应该行得通。但是,下面的示例解码失败并出现此错误:ExpectedtodecodeDictionarybutfoundastring/datainstead.我认为这适用于.json文件,我没有在JSONDecoder和PropertyListDecoder中找到任何关于对可编码类型的不同支持的信息>。这可能是由解析器不兼容引起的吗?我正在使用X
我正在尝试解码一个json文件,那里有很多ui配置,我正在寻找一个干净的解决方案来直接将十六进制代码解析为UIColor。但是UIColor不符合Codable。例如这个json:varjson="""{"color":"#ffb80c"}""".data(using:.utf8)!我希望能够做到这一点:structSettings:Decodable{varcolor:UIColor}在解码时将“十六进制”字符串转换为UIColor我已经有了从字符串解码并返回UIColor的函数:publicextensionKeyedDecodingContainer{publicfuncdeco
我有一个Codable带有一个变量的类,该变量包含String的字典键和值可能是String小号,Ints或符合Codable的自定义结构.我的问题是:如何定义值为Codable的字典?我希望这就足够了vardata:[String:Codable]=[:]但显然这使我的类不再符合Codable.我认为这里的问题和我这里的一样,我传递的是协议(protocol)而不是受协议(protocol)约束的对象UsingJSONEncodertoencodeavariablewithCodableastype所以大概我需要一个受约束的通用类型,比如AnyObject但这是不可能的。编辑:回答因
我正在尝试为包含NSAttributedString的类实现Codable,但我在编译时遇到错误:trycontainer.encode(str,forKey:.str)errorambiguousreferencetomember'encode(_:forKey:)'和str=trycontainer.decode(NSMutableAttributedString.self,forKey:.str)error:No'decode'candidatesproducetheexpectedcontextualtype'NSAttributedString'我可以通过使用字符串中的NSD
我无法在子类中设置b属性。它是继承自Codable的父类,并且看起来运行良好。我觉得我错过了一些非常明显的东西,但我很难只见树木不见森林。下面是我的问题的Playground示例。b保持为0,尽管被设置为10。传入的是子类,但是可以设置父属性(很奇怪!)。classPrimary:Codable{vara:Int=0}classSecondary:Primary{varb:Int=0}letc=Secondary.selffunctestRef(_t:T.Type){letjson="{\"a\":5,\"b\":10}".data(using:.ascii)!lettestCodab