在 Swift 中,如果返回的数据是不同的格式,如何让 json 请求自动取消



我遇到了这个问题,从站点下载的 JSON 数据与从同一站点接收的其他数据相比具有不同的格式。此问题导致应用程序冻结。 例如,从站点接收的 98% 的数据如下所示:

{
id: 27673,
title: "Unbreakable Kimmy Schmidt",
alternate_titles: [ ],
status: "",
type: "online",
container_show: 0,
first_aired: "2015-02-17",
network: ""
}

但是由于某种奇怪的原因,某些JSON数据的格式如下:

{
id: 35107,
title: "Jessica Jones",
alternate_titles: [ ],
status: "",
type: "online",
container_show: 0,
first_aired: false,
network: ""
}

"first_aired"的值是第一个 JSON 数据的字符串,但第二个数据的布尔值。如果 JSON 数据的格式发生更改并返回到发出请求之前的原始视图,是否可以使 JSON 数据自动取消请求?或者更好的是跳过与原始格式不同的值,但仍检索其余数据?

Caleb的方法奏效了。 我从所有 JSON 数据中删除了可选绑定,而是对其进行了如下设置:

let firstAired = jsonResult["first_aired"] as? String ?? "N/A"

它就像一个魅力。 该应用程序不再冻结,当JSON数据具有不同的格式时,它会读取" N/A"。