首页 > 解决方案 > 如何使用 JSONDecoder 将 Int 解码为字符串?

问题描述

我正在JSON从解析 a API,如下所示:

let model = try? JSONDecoder().decode(Person.self, from: parsedData) 

// MARK: - Person
struct Person: Codable {
    let position 
    let rank: Int
}

问题是当我想设置 a 的值时UILabelrank因为我想添加一个'#',所以我必须按照以下方式进行:

labelRank.text = "#" + "\(person.rank)"

实际上我想做的是:

labelRank.text = person.rank

所以实际上我想要一个自定义解析 from Intto String。我怎样才能达到这个结果?

标签: iosswiftstringintjsondecoder

解决方案


您可以有一个计算属性rankAsString,它将"#" + "\(rank)"在 Person 结构中返回,如下所示。

struct Person: Codable {
    let position: Int
    let rank: Int

    var rankAsString: String {
        return "#" + "\(self.rank)"
    }
}

并且,然后使用它来填充标签,如下所示。

labelRank.text = rankAsString

希望能帮助到你。


推荐阅读