对模型中没有嵌套属性的嵌套对象进行编码
Posted
技术标签:
【中文标题】对模型中没有嵌套属性的嵌套对象进行编码【英文标题】:Encoding a nested object that does not have nested property in its model 【发布时间】:2020-02-26 22:03:38 【问题描述】:假设我有以下结构:
struct Event: Codable
var id: Int
.... // many non nested fields
在我的应用程序中,允许用户创建事件列表。用户完成后,我想通过 POST 请求将该列表传递给我的服务器。
为此,我需要创建一个如下所示的有效 JSON 对象。
这是Event
的列表,前导键为"events"
。
"events": ["id": 1, ... more of the non nested fields ... , ... ]
如何设置我的Event
对象,使JSONEncoder.encode(events)
返回上面的预期JSON?我真的很想避免每个字段都有一个 CodingKey,因为它们在这种情况下编码、解码都很好。我还想避免将此 Event
对象嵌套在另一个名为 Events
的结构中以获得所需的结果。
【问题讨论】:
【参考方案1】:您可以只编码一个字典,将您的 events
数组与键 "events"
相关联
JSONEncoder.encode(["events": events])
【讨论】:
以上是关于对模型中没有嵌套属性的嵌套对象进行编码的主要内容,如果未能解决你的问题,请参考以下文章
Swift/JSONEncoder:包含嵌套原始 JSON 对象文字的编码类
覆盖继承的默认支持对象(如 dict、list)的嵌套 JSON 编码