swift 从“www.example.com“解码JSON数据时出错aqicn.org[已关闭]

r8uurelv  于 2023-03-28  发布在  Swift
关注(0)|答案(1)|浏览(104)

**已关闭。**此问题为not reproducible or was caused by typos。当前不接受答案。

这个问题是由打字错误或无法再重现的问题引起的。虽然类似的问题在这里可能是on-topic,但这个问题的解决方式不太可能帮助未来的读者。
昨天关门了。
Improve this question
我是Swift编程的新手,我陷入了这个问题,解析我从“www.example.com”获得的JSON数据https://aqicn.org/api/。
因为我想要的数据只是一个'aqi',所以我在下面做了一个超级简单的模型来解析JSON数据。

struct Dust: Codable {
    let data: DataClass
}

struct DataClass: Codable {
    let aqi: Int
}

还有,这是我得到的错误信息。

keyNotFound(CodingKeys(stringValue: "aqi", intValue: nil), Swift.DecodingError.Context(codingPath: [], debugDescription: "No value associated with key CodingKeys(stringValue: \"aqi\", intValue: nil) (\"aqi\").", underlyingError: nil))

看起来我做的模型是错误的,但是,我不确定问题是什么。我确实把aqi改成了String,然后又试了一次,但是错误仍然出现。
这里的解码功能只是以防万一...

func parseDustJSON(_ dustData: Data) -> Int? {
        print(#function)
        do {
            let decodedDustData = try JSONDecoder().decode(DataClass.self, from: dustData)
            let dustData = decodedDustData
            return dustData.aqi
        } catch {
            print(error)
            return nil
        }
    }
}

如果有人能帮我一把,我将不胜感激。
screenshot of the JSON data I want to get

rdlzhqv9

rdlzhqv91#

需要传递Dust.self,而不是DataClass.self

let decodedDustData = try JSONDecoder().decode(Dust.self, from: dustData)
return decodedDustData.data.aqi

相关问题