JSONDecoder()仅在Swift中处理Null值

问题描述 投票:0回答:1

这是我的JSON响应。

Struct:

struct Welcome: Codable {
    let name: String
    let id: Int
}

JSON:

{
    "name": "Apple",
    "id": 23
}

这是JSON的结构,但名称有时为null。因此,我想替换为默认字符串值而不是null。因为避免将来应用崩溃。

{
    "name": null,
    "id": 23
}

如果名称为null,那么我只想为属性name提供默认值,例如“ orange”。我不想对id做任何事情。

我提到了一些答案,它们使人困惑并且使用init中的所有属性而不是选定的属性。这对我来说是不可能的,因为我有200个具有50个类型的JSON属性,它们将为null或具有值。.]

我该怎么办?预先感谢。

json swift swift3 jsondecoder
1个回答
0
投票
您可以(通过包装)来实现这一点:

struct Welcome: Codable { private let name: String? // <- This should be optional, otherwise it will fail decoding var defaultedName: String { name ?? "Orange" } let id: Int }

这还将确保服务器永远不会获得default值。
© www.soinside.com 2019 - 2024. All rights reserved.