问题标签 [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 投票
2 回答
648 浏览

swift - 在 Swift 中将 JSONEncoder 用于 Equatable 方法

我知道 JSON 密钥没有任何顺序并且可以随机生成,但是没有任何东西阻止我编写这个函数,并且从我的测试来看,这适用于我测试的每个用例。

我要解决的问题是为一种类型编写一个函数,该类型具有一个协议的数组,具有大约 20 种不同的实现,我必须实现该==函数而不是快速自动合成。而且我知道我可以切换到JSONSerialization.writeJSONObject选项.sortedKeys以保留键顺序。

这个实现而不是任何其他编写==函数的方法的缺点是什么?

0 投票
1 回答
341 浏览

swift - Swift Codable:是否可以在其自己的“encode(to:)”函数中对结构上一层进行编码?

我正在使用协议来编码符合的结构:

这对于编码这些类型的结构非常有效:

但是,有时我的请求需要一些“共享”参数:

我可以简单地将这些共享参数写在需要它们的每个请求结构上,但我想知道是否可以将它们分组到另一个结构中并以某种方式修改编码以在顶层对它们进行编码?

我正在考虑类似的事情:

最后一个结构的问题是生成的编码与第一个不同,因为我的共享参数将在“ sharedParams ”键内编码:

但是我需要将它们与我的其他现有参数(在本例中为 storeCode 和 storeNumber)一起编码。


编辑: 为了使问题更清楚,假设有可能,这里应该怎么做才能使这个结构直接在其父级上由键值编码?

0 投票
1 回答
676 浏览

json - Swift 4 - 无法使用“(可编码)”类型的参数列表调用“编码”

我已经构建了一组 API 函数,它们对对象进行编码(使用Struct符合的Codable),然后将生成的 JSON Data 对象发布到服务器,然后解码 JSON 响应。一切正常 - 对 Swift 4.2 中 JSON 解析的新方法特别满意。但是,现在我想重构代码,以便可以将代码重用于各种方法调用——当我这样做时,我会遇到一个非常烦人的错误。

这是错误消息:

我尝试将类型从 Codable 更改为 Encodable 但得到相同的错误,除了消息中的类型 (Encodable)。有什么建议吗?我的回退是在当前 ViewController 中编码数据,然后调用 HTTPPost 函数,然后在 VC 中解码。但这真的很笨拙。

0 投票
1 回答
637 浏览

ios - 无法将类型“[[ModelName]?]”的值转换为预期的参数类型“[ModelName].Type”

我已经从 [ https://jsonmaster.github.io/#][1]这个可编码的链接创建了一个模型类,我收到这种错误无法将类型“[[BookingMasterModel]?]”的值转换为预期参数类型'[BookingMasterModel].Type'实际上我对它很陌生,如果有解决方案请分享

//我的订单模型

此 Booking Master 模型

0 投票
3 回答
1818 浏览

swift - Swift Codable:使用动态键编码结构

我想要以下 JSON 结构(假示例):

如您所见,结构如果确定,但结构的名称是动态的。

如何将其转换为 Swift Codable 结构?当前尝试:

但是,这将给出以下结果:

我不想要 JSON 中的“posDicts”。什么是最好/最简单的解决方案?

PS:有关使用动态键可解码 Swift Codable 的相关问题

0 投票
1 回答
943 浏览

arrays - 在 Swift 模型中解码数组(可解码)

我正在从 API 中检索 JSON,并且我想为我使用的每个端点创建一个模型。

所有端点都使用这种格式:

关键是:

  • id总是一个字符串
  • error可以为null或其中包含键的对象
  • result可以是null ; 一个对象或一个数组。

我遇到的问题是,在其中一个端点上,结果是数组数组:

如您所见,我有数组数组,其中值可以是字符串或整数。

您如何使用 Decodable 协议对其进行解码,然后根据它们的原始值将这些解码值用作 String 或 Int ?

0 投票
1 回答
361 浏览

swift - 使用 XMLParsing swift 库发布请求时出现错误 401

我正在测试 XMLParsing 库(使用带有 XML 请求的 Codable 协议)

XMLParsing 库链接: https ://github.com/ShawnMoore/XMLParsing

使用https://openweathermap.org API

API 链接是“ http://api.openweathermap.org/data/2.5/weather

我的模型是

并且请求是

不知道问题出在哪里!我总是收到错误代码 401

但在 PostMan 上它工作正常并获取当前数据

在此处输入图像描述

0 投票
1 回答
440 浏览

json - 如何在同一个结构中对多种日期格式进行 JSON 编码

需要编码为 JSON,这是一个具有 2 个日期实例变量(日期和时间)的结构,但是,我需要使用不同的格式对每个日期实例变量进行编码,即。对于“天”:“yyyy-Md”和“时间”:“H:m:s”。

编写了一个没有问题的自定义解码器。但不确定如何编写所需的自定义编码器来解决这个问题。

例如,我可以解码以下 JSON 字符串: { "biometrics" : [ {"biometricId":1,"amount":2.1,"source":"Alderaan","day":"2019-1-3"," time":"11-3-3","unitId":2}, {"biometricId":10,"amount":3.1,"source":"Endoor","day":"2019-2-4" ,"时间":"11-4-4","unitId":20}] }

但是,当我对其进行编码时,我只能以单一日期格式对其进行编码:( 帮助,将不胜感激。谢谢。

我希望编码的 JSON 可以被解码器解码。即 biometricsJson == jsonString

0 投票
2 回答
897 浏览

ios - 在可编码类中声明空字典

我想像这样发送空字典

我尝试在一个类中实现空字典。在解码器中,我收到警告:

没有“解码”候选产生预期的上下文结果类型“字典”

我怎样才能做到这一点?

0 投票
2 回答
66 浏览

swift - 使用 Codable 时的错误 - Swift

我正在Codable尝试将EncodeJSON 转换为模型,但出现两个错误。 “KeyedEncodingContainer”类型的值没有成员“编码器”

这是我的代码: