gpt4 book ai didi

json - 使用 guard 语句从 json 解包到 AnyObject

转载 作者:行者123 更新时间:2023-11-28 06:43:31 25 4
gpt4 key购买 nike

我需要在 json 文件中解析字典中的数据(包含相同的键)。问题是在某些字典中,同一个键的值是一个字符串,但在另一个字典中它是一个 float 。 (可选阅读:原因是我使用的 csv 到 json 转换器确实将负十进制数识别为字符串,因为破折号后有一个空格:“- 4.50”。我将删除该空格并转换为 float 一次字符串被展开。)

我尝试执行以下操作:

guard let profit = data["profit"] as? AnyObject else { return }
if profit as! Float != nil {
// Use this value
} else {
// It is a string, so delete the space and cast to float
}

必须有一个简单的解决方法,但无论我如何放置 ?和 !在 guard 语句中,编译器会报错。

最佳答案

无论如何,字典值的默认类型是 AnyObject,因此这种类型转换是多余的。

您可以简单地使用is 操作数检查类型

guard let profit = data["profit"] else { return }
if profit is Float {
// Use this value
} else {
// It is a string, so delete the space and cast to float
}

或者包括适当的类型转换

guard let profit = data["profit"] else { return }
if let profitFloat = profit as? Float {
// Use this value
} else if let profitString = profit as? String {
// It is a string, so delete the space and cast to float
}

关于json - 使用 guard 语句从 json 解包到 AnyObject,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37228131/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com