无法在JSON解析中将NSNumber桥接到Float

Ján*_*nos 13 json ios swift

得到此错误:

致命错误:无法将NSNumber桥接到Float.问题是什么?

在此输入图像描述

在此输入图像描述

这是原始消息,它是float而不是string.

{\"name\":\"Tomas\",\"gender\":\"male\",\"probability\":0.99,\"count\":594}
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述

Jea*_*nès 28

Swift/Foundation中有许多不同类型的数字.您NSKeyValueCoding已被设置为实例NSNumber(请参阅下面的JSON序列化文档的摘录),因此您需要按原样阅读,然后要求将其转换NSNumberFloat需要:

if let n = d.value(forKey: "probability") as? NSNumber {
    let f = n.floatValue
}
Run Code Online (Sandbox Code Playgroud)

JSONSerialization 文件说:

可以转换为JSON的Foundation对象必须具有以下属性:

  • 顶级对象是NSArray或NSDictionary.
  • 所有对象都是NSString,NSNumber,NSArray,NSDictionary或NSNull的实例.
  • 所有字典键都是NSString的实例.
  • 数字不是NaN或无穷大.