【问题标题】:How to remove properties (key:values) from JSON object in Swift如何从 Swift 中的 JSON 对象中删除属性(键:值)
【发布时间】:2020-07-11 18:59:28
【问题描述】:

我的 JSON 格式如下:

[
    {
        WWW: "2",
        XXX: "2",
        YYY: "3",
        ZZZ: "4"
    },
    {
        WWW: "2",
        XXX: "5",
        YYY: "6",
        ZZZ: "7"
    },
    {
        WWW: "2",
        XXX: "2",
        YYY: "2",
        ZZZ: "3"
    }
]

但我只对与 Y 和 Z 合作感兴趣。

如何从原始 JSON 或 SWIFT 中数组形式的 JSON 中删除整个 W 和 X 列?

只有我能找到这样as here 的答案似乎已经过时了。感谢您的建议。

【问题讨论】:

  • 使用JSONDecoder(SO 上最重要的swift 问题之一)解码JSON 并指定您要使用的CodingKeys。

标签: ios arrays swift dictionary


【解决方案1】:

用途:

dict["WWW"] = nil
dict["XXX"] = nil

或:

dict.removeValue(forKey: "WWW")
dict.removeValue(forKey: "XXX")

更好的方法是使用JSONEncoderCodingKeys

struct Model: Decodable {
    var yyy, zzz: String

    enum CodingKeys: String, CodingKey {
        case yyy = "YYY", zzz = "ZZZ"
    }
}

【讨论】:

    【解决方案2】:

    定义你的结构以匹配你想要的,然后解码它:

    struct Value: Decodable {
        enum CodingKeys: String, CodingKey {
            case y = "YYY"
            case z = "ZZZ"
        }
        var y: String
        var z: String
    }
    
    let value = try JSONDecoder().decode([Value].self, from: json)
    

    这将排除您未包含的任何键。

    【讨论】:

      猜你喜欢
      • 2015-03-10
      • 2014-09-06
      • 1970-01-01
      • 1970-01-01
      • 2021-07-27
      • 2011-01-16
      • 1970-01-01
      • 2019-09-15
      • 2011-05-09
      相关资源
      最近更新 更多