问题标签 [encodable]

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 投票
1 回答
802 浏览

swift - 试图在 Swift 中编写一个可编码的类,但格式不正确?

我正在创建一个符合可编码的类。

我有这个:

这显然很好。

我创建一个实例Attribute并使用以下方法对其进行编码:

然后我创建一个包含这些属性的数组并使用

这将对 to 的数组进行Attribute编码Data

然后我尝试将Data对象转换回Attribute使用这个的数组:

我得到的第一个错误是:

从“属性”转换为不相关类型“数组<属性>”总是失败

如果我移除铸件,我会在解码尝试时发现此错误......

可选(“数据格式不正确。”)

有任何想法吗?

0 投票
1 回答
131 浏览

swift - 为 URL 类型实现 KeyedDecodingContainerProtocol

我正在开发一个项目来创建一个自定义Decoder来处理非 JSON 数据。

要解码的数据可以是URLs 或Strings。例如:

为了处理这种类型的解码,我实现了一个名为 的类KeyedContainer,它实现了KeyedDecodingContainerProtocol.

对于 aString非常简单,因为我可以使用以下方法:

相反,我需要URL依赖以下内容:

在其中,我执行以下操作:

where是直接从自定义解码器configuration传递给的结构。KeyedContainer

这是正确的方法吗?我不确定的是as! T为了让编译器开心而进行的演员阵容。

0 投票
1 回答
193 浏览

ios - 多部分请求 - 带有 UIImage 的可编码结构

使用 Swift 5,我试图减少很多依赖项(Alamofire),并且我试图了解如何在使用 Codable 和 URLRequest 时执行多部分请求

我的代码可以正常工作以创建具有名称和电子邮件的用户,但我需要将头像添加到结构中。

添加头像后,如何对结构进行编码以便成为多部分请求。我在网上找到了一些解决方案,但不适用于我正在尝试实施的场景。

下面的代码是没有头像的请求的工作代码。

0 投票
3 回答
7044 浏览

json - 如何使用包含已编码值的 Encodable 在 Swift 中编码结构

想象一个如下的数据结构,其中包含contents一个已编码的 JSON 片段的值。

期望的输出

组合数据结构应按contents原样使用并进行编码other

使用Encodable

以下实现Encodable编码Document为 JSON,但它也重新编码contents为字符串,这意味着它被包裹在引号中,并且所有"引号都转义为\".

输出

怎么可能encode就这样通过contents

0 投票
1 回答
555 浏览

swift - 为什么不符合协议可编码可解码?

我有以下代码结构。如果我省略了 codingkey 部分,代码正在运行。我实现了 StringConverter 将字符串转换为 Int(来自 bySundell Swift Side)

正如我所说,如果我省略 Codingkeys 部分,它不会显示任何错误。我只需创建一个结构,从 Rest API 获取一个字符串,然后我想使用 Codable 为我的数据库转换一个 Int。谢谢阿诺德

0 投票
1 回答
69 浏览

json - 如何快速将此异构对象与模型映射?

好的,所以我被困在用这个模型解码这个特定 json 的最后一项,“有效载荷”总是为零,在这个“有效载荷”对象中,我可以制作自己的 json 结构,我能够解码“文本”但是当涉及到最后一项“有效负载”时,它不起作用并且始终为零。

我没有使用任何第三方库。

我的模型课。

这个 json 是我从 dailogeflow(V2) 中得到的。我正在应用程序中集成一个聊天机器人。

0 投票
0 回答
71 浏览

ios - 如何将 [JSON] 转换为数据格式(编码),以便我可以将它与我的模型绑定

我有 [JSON] 数组格式的数据,我需要基于 JSON 创建模型并需要绑定它们

我尝试对 [JSON] 进行编码,但应用程序崩溃并显示错误消息

由于未捕获的异常“NSInvalidArgumentException”而终止应用程序,原因:“JSON 写入中的类型无效 (__SwiftValue)”

我创建了一个基于 JSON 数据的模型,并希望将它们与 [JSON] 数组值绑定

JSON是

基于模型的结构

0 投票
0 回答
240 浏览

swift - 类型“缓存”不符合协议“可编码”

我一直在关注这里找到的关于Caching in Swift的指南。

我目前收到错误Type 'Cache' does not conform to protocol 'Encodable'

这对我来说毫无意义,因为我遵循了这封信的指南,我发现有几个人在 GitHub 上使用相同的缓存,我相信我的输出与他们的匹配。

为什么“缓存”不符合?

我添加了下面教程中创建的完整类 -

在此处输入图像描述

0 投票
1 回答
782 浏览

json - 没有嵌套超类的 Swift 编码类

摘要: 我想对我的超类的所有字段进行编码,而不将它们嵌套在 json 结果中。

这就是我的意思:

假设我们有这些结构:

现在我们决定GiftEmployee像这样编码一个对象:

打印出来giftString给我们以下输出:

如您所见,我们的 BasicEmployee 超类的所有属性都嵌套在"employee"json 字段中。

但是,我不希望那样。我希望的输出giftString如下:

结构的属性BasicEmployee不应嵌套,并且与GiftEmployee结构的编码属性处于同一级别。

笔记

我知道我可以通过改变结构的结构来避免所有的麻烦,但是,这现在是不可能的。

我将非常感谢我能在我的问题上获得的任何帮助。

0 投票
0 回答
49 浏览

json - 为什么 JSONEncoder 与枚举键字典的工作方式不同?

当我使用JSONEncoder这样的结构时:

items按预期将属性作为 JSON 对象:{"a": 1, "b": 2, "c": 3}. 但是当我对这样的键使用枚举时:

我得到itemsJSON 数组:["a", 1, "b", 2, "c", 3]. 这非常令人困惑,而且我也找不到有关此行为的任何文档。

有一种方法可以通过将此类字典包装到结构中并实现 Encodable 协议来使此代码正常工作,但也许有简单的方法可以做到这一点?