我从服务器获取json,我需要在swift代码中将id字段转换为字符串。
问题是json有时返回"12345"
,有时会返回12345
(带或不带引号)。
是否可以在不检查值类型并检查转换结果是否为nil
的情况下解决此问题?
已更新
我用于检查转换结果的代码示例:
let result = (some_index as? String) ?? String(some_index as! Int)
问题出在Objective-C,你有[NSString stringWithFormat:@"%@", some_object]
。但是在swift中你有选项,它会尝试在结果中插入“optional”字样。
已更新
使用关于期权的随机答案来阻止垃圾邮件。问题是具体的 - “如何简单地解开看起来像String,Int或根本不存在的json值?”
swift How to remove optional String Character
在这个问题中,他们会询问如何转换Int? -> Int
,String? -> String
和类似内容。在我的情况下,我不知道我是否有Int?
或String?
作为初始类型。
答案 0 :(得分:0)
String
和Int
都符合CustomStringConvertible
,因此您可以选择将值向下转发到CustomStringConvertible
并使用字符串插值
let dict : [String:Any] = ["Foo" : 12345]
if let value = dict["Foo"] as? CustomStringConvertible {
let result = "\(value)"
}
并指责Web服务的所有者发送不一致的数据; - )