问题标签 [codable]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
swift4 - Codable,Decodable 只是字典中的一个值
我有一个 API 的 json 响应。这也返回一个值,它是一个字典。如何实现仅存储/映射此字典的值。这是一个可以简单地放入操场的示例:
应该只是
这是一个可以简单地放入操场的示例:
swift - 用于字符串资源格式的自定义 Swift 编码器/解码器
我一直在玩弄Codable
并从文件中读取和写入 JSON。现在我想写一个Coder
可以读写iOS.strings
文件的自定义。谁能帮我这个?我找到了协议Encoder
和Decoder
,但我不知道我应该在这里实现什么:
json - 用swift将JSON嵌套到嵌套字典中
我使用新的 Codable 协议将结构转换为 JSON,然后转换为字典以进行测试。问题是结构中的字典变量没有被转换回来并保持不变Any
而不是[Int: String]
这给了我以下结果
当我期望
我将不胜感激任何解释为什么会发生这种情况,或者更好的是如何基本上进行深度 JSON 序列化的解决方案。
我正在添加一个展示问题的游乐场: https ://www.dropbox.com/s/igpntk7az0hevze/JSONSerialisation.playground.zip
swift - 如何使用 Swift 的 Codable 编码成字典?
我有一个实现 Swift 4 的结构Codable
。是否有一种简单的内置方法将该结构编码到字典中?
swift - Swift Codable 协议…编码/解码 NSCoding 类
我有以下结构......</p>
编码Photo
失败...</p>
Optional 不符合 Encodable 因为 UIImage 不符合 Encodable
解码失败...</p>
期望非可选类型时未找到键 编码键可选“图像”))
NSObject
有没有办法对包含符合NSCoding
( UIImage
, UIColor
, 等)的子类属性的 Swift 对象进行编码?
swift - Codable:通过索引将 JSONArray 解码为特定字段
我有这个(恕我直言)JSON
我想映射到 this struct
,删除 2 个字段的数组。
有JSONDecoder
能力做到这一点吗?也许使用CodingKey
?
swift - 使用 Swift JSONEncoder 编码时会发生什么错误
JSONEncoder
方法func encode<T>(_ value: T) throws -> Data where T : Encodable
是可抛出的。
我想知道为什么它是可抛出的:如果要编码的值不符合Encodable
,它不应该通过编译器,所以它在运行时应该不会发生错误。
ios - Swift Decodable:如何在解码期间转换其中一个值?
默认情况下,Decodable
协议将 JSON 值转换为对象值而不进行任何更改。但有时您需要在 json 解码期间转换值,例如,在您获得的 JSON 中,{id = "id10"}
但在您的类实例中,您需要将数字10
放入属性中id
(甚至放入具有不同名称的属性中)。
您可以实现init(from:)
可以使用任何值执行所需操作的方法,例如:
这对我来说听起来很棒,但是如果我只想更改其中一个JSON 字段的值而让我的所有其他 20 个字段保持不变怎么办?如果init(from:)
我应该为我班级的 20 个字段中的每一个字段手动获取和放置值!经过多年的 objC 编码,我很直观地首先调用 super 的实现,init(from:)
然后只对某些字段进行更改,但是我如何使用 Swift 和Decodable
协议实现这样的效果呢?
swift - 使用 Swift 4 Codable PropertyListDecoder() 解码 PropertyList
我尝试使用解码 plist,PropertyListDecoder()
但是当我尝试访问密钥时,我收到一个错误,指出它的格式错误。我对自己做错了什么感到茫然。我假设我可以Plist
像解码 JSON 文件一样解码文件,对吗?我不知道,我还是新手。
这是我的第一种方法,但它会抛出一个错误说
“无法读取数据,因为格式错误”
第二种方法,有点放弃Codable
了,仍然无法提取值
plist 文件的结构类似于
有什么建议吗?
ios - 当 JSON 输入表示 Codable 类型的多个子类时使用 Codable
假设我有一些 JSON,如下所示:
此 JSON 表示两个消息对象。这是我想代表它们的方式(Swift 4):
如何使用 JSON 中的“类型”属性来告诉 Codable 要初始化哪个子类?我的第一直觉是使用枚举作为中介,这将允许我在字符串表示和元类型之间切换
但是,这里的 init 会导致编译器错误
Expression pattern of type 'TextMessage.Type' cannot match values of type 'Message.Type'
- 是否有规范/可接受的方式来处理这种情况?为什么函数 getType 编译时这里的 init 不编译?