Разверните необязательный текст из JSON - PullRequest
0 голосов
/ 26 марта 2020

У меня есть несколько строк, возвращенных из 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)
}

и разверните его, используя! Ничего не помогло. Пожалуйста, помогите.

Ответы [ 2 ]

0 голосов
/ 01 апреля 2020

Развернуть как это!

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
0 голосов
/ 26 марта 2020

Вы пытались просто присвоить print () значение по умолчанию?

print(self.fname ?? "")

Кстати, я думаю, проблема в том, что это двойные опции. Вам нужно развернуть их дважды.

// If you just want to bang these out.
print((self.lname!)!). 
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...