问题标签 [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.

0 投票
2 回答
1978 浏览

ios - 获取 KeyPath 的特定 CodingKey

考虑以下对象:

是否有可能获得特定CodingKey的给定KeyPath

0 投票
1 回答
1884 浏览

swift4 - 如何使用可编码和文件管理器在 swift 4 中保存数据

大家好,任何人都知道如何在 swift 4 中保存数据我制作了一个表情符号应用程序,我可以描述表情符号,我有一个未来可以在应用程序中保存新的表情符号我在我的表情符号类中编写了这段代码,但是当我想要返回表情符号我收到错误请帮助我。

0 投票
5 回答
3803 浏览

json - 如何在 Swift 4 中实现 JSON 数据的多态解码?

我正在尝试从 API 端点返回的数据中呈现视图。我的 JSON 看起来(大致)是这样的:

我有一个对象表示如何在我的 UI 中布局视图。它看起来像这样:

ViewLayoutSectionItemable是一种协议,其中包括要在布局中使用的图像的标题和 URL。

但是,sectionItems数组实际上是由不同的类型组成的。我想做的是将每个部分项目实例化为其自己的类的实例。

如何设置init(from decoder: Decoder)方法ViewLayoutSection让我遍历该 JSON 数组中的项目并在每种情况下创建正确类的实例?

0 投票
2 回答
1668 浏览

json - 如何将 json 有效负载转换为自定义对象?

我们有一个 json 有效载荷:

自定义对象已创建:

问题是将其正确映射到创建的对象,实现这一目标的最佳方法是什么?

0 投票
0 回答
2147 浏览

swift - 即使使用的对象符合自身,也不能符合可解码或可编码(使用可编码)

我在使用 Codable 协议同时符合 2 个协议时遇到了一些麻烦。

我的理解是,即使我使用了自定义对象,只要该对象成功符合 Codable,那么任何引用的对象也可以符合。

我有以下代码,但看不到为什么会出现错误:

'PromotionProtocol' 中的所有内容都是 String 或 Int,所以这很好。但是我得到了 Class Promotion 不符合 Encodable 和 Decodable 的错误。

0 投票
5 回答
4346 浏览

swift - Swift 4 可编码和泛型

我正在使用 PINCache 向我的应用程序添加缓存,并且我处于缓存系统调用编码/解码的委托方法的情况。这些方法是通用的,但通用值不明确符合Codable. 因为他们是代表,所以我不能更改签名以使泛型类型符合Codable.

使用此代码,我遇到以下错误:

在参数类型中T.TypeT不符合预期类型Decodable

如何强制我decoder接受通用值?

0 投票
5 回答
2124 浏览

json - 使用带有多个键的可解码协议

假设我有以下代码:

一切都在工作,除了age总是nil。这是有道理的。我的问题是如何在第一个示例和第二个示例中设置人的年龄 =realage或。而不是在这两种情况下,我希望它在第一种情况下。28nilagenil28

有没有办法只使用CodingKeys而不需要添加另一个结构或类来实现这一点?如果不是,我如何使用另一个结构或类以最简单的方式实现我想要的?

0 投票
2 回答
4397 浏览

swift - 在动态类型/对象上使用 Codable

嗨,我有以下结构嵌套在从 api 调用返回的更大结构中,但我无法对这部分进行编码/解码。我遇到的问题是 customKey 和 customValue 都是动态的。

我尝试了类似var values: [String:String]但这显然不起作用,因为它实际上不是一个[String:String].

0 投票
4 回答
17398 浏览

swift - Swift Codable Decode 手动可选变量

我有以下代码:

问题是它正在崩溃age = try values.decode(String.self, forKey: .age)。当我取出该init功能时,它工作正常。错误是No value associated with key age (\"age\").

关于如何使它成为可选并且在它不存在时不让它崩溃的任何想法?由于其他原因,我还需要该init功能,但只是做了一个简单的例子来解释发生了什么。

0 投票
3 回答
20040 浏览

ios - Swift 可解码可选密钥

(这是这个问题的后续:Using Decodable protocol with multiples keys。)

我有以下 Swift 代码:

我知道如果我使用decodeIfPresent并且没有该属性,如果它是可选变量,它仍然会正确处理它。

例如,以下 JSON 可以使用上面的代码对其进行解析。

以下 JSON 也可以使用。

但以下不起作用。

我怎样才能使所有 3 个示例都起作用?有没有类似于decodeIfPresentfor 的东西nestedContainer