gpt4 book ai didi

json - 如何在 swift 中进行安全的 json 解析?

转载 作者:行者123 更新时间:2023-11-28 12:24:07 26 4
gpt4 key购买 nike

我从服务器获取图像的 Json 我已经创建了一个模态类,并且在该类下我已将图像声明为该类的成员。

class SomeClass: NSObject {

var objImages:[Images] = [Images]()


}

图像类

class Images {

var thumbImage:String = ""
var fullImage:String = ""

init(dictionary:NSDictionary){

fullImage = dictionary["thumb"] as? String ?? ""
thumbImage = dictionary["full_url"] as? String ?? ""
}
init() {

}

}

解析json数据

 if let arrImg  = dictionary["images"] {

for value in arrImg as! NSArray {
let tempImage:Images = Images(dictionary: value as! NSDictionary)
recipeImages.append(tempImage)
}
}

下面是josn的回复

   { "images": [
{
"thumb": "https://mysevrer.com/v0/b/a.png”,
"full_url": "https://mysevrer.com/v0/b/b.png"
},
{
"thumb": "https://mysevrer.com/v0/b/a.png”",
"full_url": "https://mysevrer.com/v0/b/b.png”"
}
]
}

请问这是解析响应的安全方式吗?

  • 如果我没有将图像作为数组怎么办
    如果我没有得到“拇指”怎么办&“完整”作为键

最佳答案

我不确定这是否是您的意思,但这将返回一个可选的图像实例。因此,如果字典不包含这些键中的一个或两个,它将返回 nil。

class Images {

var thumbImage:String

var fullImage:String

init?(dictionary:Dictionary<String,String>){

guard let image = dictionary["thumb"] else { return nil }

guard let thumb = dictionary["full_url"] else { return nil }

self.fullImage = image

self.thumbImage = thumb
}
}

对于数组的解析部分。

guard let imagesArray = dictionary["images"] as? Array<Dictionary<String,String>> else { return }

for dict in imagesArray {

guard let images = Images(dictionary: dict) else { continue }

recipeImages.append(images)
}

关于json - 如何在 swift 中进行安全的 json 解析?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43842785/

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