首页 > 解决方案 > 将字典解码为可编码结构的数组

问题描述

我有 JSON 作为字典 [String, Anyobject]:

{
  "AED": "United Arab Emirates Dirham",
  "AFN": "Afghan Afghani",
  "ALL": "Albanian Lek",
}

我需要将其解码为可编码结构货币的数组,例如:

struct Currency: Codable {
  var code: String
  var name: String
}

Currency(code: "AED", name: "United Arab Emirates Dirham")

标签: jsonswiftcodable

解决方案


您可以将 json 解码为 Dictionary 并映射到 Array。

let currencies = try? JSONDecoder()
        .decode([String: String].self, from: data)
        .map({ Currency(code: $0.key, name: $0.value) })

推荐阅读