gpt4 book ai didi

如果 API 中存在空白或 null,则 JSON 序列化

转载 作者:行者123 更新时间:2023-11-30 10:43:07 25 4
gpt4 key购买 nike

您好,在应用程序上线之前,我正在使用 API 从服务器调用称为可用性要求的要求列表。但是,当可用性要求为空时,应用程序就会崩溃。

我尝试用我的修复方法写下下面的代码。 。可能还有其他方法可以编写此内容,但我希望仅使用 JSON 序列化。我检查过论坛,大多数都有旧代码。

    let rquirements = company.availabilityRequirements
if rquirements != nil {
let data = rquirements?.data(using: .utf8)!
do {
if let jsonArray = try JSONSerialization.jsonObject(with: data!, options : .allowFragments) as? [Dictionary<String,Any>]
{
print(jsonArray) //using the json here
for requirements in jsonArray {
let hist = AvailabilityRequirements(data: requirements)
availabitlityReqirements.append(hist)
}
} else { //where our error happens if nil
print("Bad JSON Cannot Convert Value")
return
}
} catch let error as NSError {
print(error)
return
}

for requirement in availabitlityReqirements {
if requirement.required == 1{
requirementItems.append(requirement.displayName)

}
}

如果可用性要求中存在空白或丢失数据,我正在尝试修复快速错误。我希望我所做的任何事情都可以解决问题,否则我想知道如果我得到空值,是否有人可以帮助我不让我的应用程序崩溃。谢谢

最佳答案

您应该使用try?以避免错误。整个代码可以是:

if let rquirements = company.availabilityRequirements, 
let data = rquirements.data(using: .utf8) {

do {
if let jsonArray = try? JSONSerialization.jsonObject(with: data, options : .allowFragments) as? [String: Any] {
print(jsonArray)

for requirements in jsonArray {
let hist = AvailabilityRequirements(data: requirements)
availabitlityReqirements.append(hist)
}
}

} catch let error as Error {
print(error)
return
}

for requirement in availabitlityReqirements {
if requirement.required == 1 {
requirementItems.append(requirement.displayName)
}
}

}

关于如果 API 中存在空白或 null,则 JSON 序列化,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56375549/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com