从JSON展开可选文本

6yt4nkrj  于 2023-08-08  发布在  其他
关注(0)|答案(2)|浏览(99)

我从JSON返回了多个字符串,并尝试了各种选项,但无法将可选内容展开。下面的代码片段

let parsedData = try JSONSerialization.jsonObject(with: data!,options: .allowFragments)    
as! [String:Any]

let currentConditions = parsedData["Result"] as! [String:Any]

self.fname = (currentConditions["fname"] as! String)
self.lname = (currentConditions["lname"] as! String)

print(self.fname!)
print(self.lname!)

字符串
在打印self.fname和self.lname时,它总是返回如下值

Optional("("firstName")")
Optional("Optional("lastName")"


我已经尝试了在stackoverflow中尝试的各种选项,比如使用

if let fname = fname {
    let ui1 = String(fname)
    print(fname)
}


打开它使用!。没有任何效果。请帮忙。

iq0todco

iq0todco1#

你有没有试过简单地给print()一个默认值?

print(self.fname ?? "")

字符串
顺便说一句,我认为问题是这些是双重选择。你需要打开它们两次。

// If you just want to bang these out.
print((self.lname!)!).

a64a0gku

a64a0gku2#

  • 像这样打开!*
guard let parsedData = try JSONSerialization.jsonObject(with: data!,options: .allowFragments)
            as? [String:Any] else { return }
        
guard let currentConditions = parsedData["Result"] as? [String:Any] else { return }

guard let fname = currentConditions["fname"] as? String, let lname = currentConditions["lname"] as? String else { return }

print(fname) //firstName
print(lname) //lastName

字符串

相关问题