对模型中没有嵌套属性的嵌套对象进行编码

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 对象文字的编码类

在 for 循环期间访问嵌套对象 VueJS

覆盖继承的默认支持对象(如 dict、list)的嵌套 JSON 编码

如何根据 Aurelia/Typescript 中的嵌套属性对对象数组进行排序

试图创建一个嵌套对象。它的干净编码实践是啥?