将保护声明从json展开到AnyObject

非主题

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

我尝试执行以下操作:

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
}

必须有一个简单的解决方法,但是无论我如何放置?和 !在警卫声明中,编译器会抱怨。

瓦迪安

字典值的默认类型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
}

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

将div展开到全屏

来自分类Dev

将列表展开到函数args中?

来自分类Dev

将std :: vector展开到参数包中

来自分类Dev

将 div 定位在展开到顶部

来自分类Dev

从UINavigationController展开到UIViewController

来自分类Dev

从UINavigationController展开到UIViewController

来自分类Dev

将包对象的声明公开到Scala中的子包

来自分类Dev

仅使用点邻居将环形面展开到2D空间中

来自分类Dev

将segue pass数据展开到不同的视图控制器

来自分类Dev

将属性声明为受保护的更好方法

来自分类Dev

sonarlint 强制将最终类的常量声明为受保护的

来自分类Dev

将stdout开到stderr吗?

来自分类Dev

可变参数模板展开到std :: tuple

来自分类Dev

自动映射器未展开到列表

来自分类Dev

可变参数模板展开到std :: tuple

来自分类Dev

使 Div 从特定位置展开到视图中

来自分类Dev

在没有 NavigationController 的情况下展开到特定的 ViewController

来自分类Dev

在结构中封送IntPtr []会导致midiStream函数出错,但是将数组展开到一堆字段上是可行的

来自分类Dev

正确的数据保护声明

来自分类Dev

Swift:对AnyObject声明感到困惑

来自分类Dev

将编译的.a链接并公开到Swift框架?

来自分类Dev

将Kubernetes集群公开到Internet

来自分类Dev

将窗口解开到其原始状态

来自分类Dev

将图像直接打开到程序中

来自分类Dev

将网站打开到Applet中

来自分类Dev

斯威夫特:使用保护声明的好处?

来自分类Dev

保存数据并快速展开到另一个控制器

来自分类Dev

将带有列表的嵌套字典展开到pandas DataFrame-keys列中

来自分类Dev

展开到不在当前导航视图控制器链中的viewController

Related 相关文章

热门标签

归档