我正在尝试从json文件访问数据。问题是一些值是NSSingleObjectArrays(只有项目的数组),我不能把它变成字符串。
class CarObject {
var pictureURL: String!
var carURL: String!
var carPrice: String!
required init(json: [String: AnyObject]) {
pictureURL = json["galleryURL"] as! String
carURL = json["viewItemURL"] as! String
carPrice = json["currentPrice"] as! String
}
}
我收到以下错误消息:
无法将'__NSSingleObjectArrayI'(0x10a2ec548)类型的值转换为'NSString'(0x109729440)。
我试图像这样访问它们:
"json["galleryURL"][0] as String!"
但是我收到以下错误:
Type 'Any?' has no subscript members
值如下所示:
galleryURL =(“一个值”);
你们知道如何轻松访问它们吗? 谢谢!
答案 0 :(得分:0)
首先将事物转换为适当的类型。听起来你的值是包含单个字符串的数组,所以像这样:
var pictureURL: URL
required init?(json: [String: AnyObject]) {
guard let pictureURLString = (json["galleryURL"] as? [String])?.first,
let pictureURL = URLComponents(string: pictureURLString)?.url else {
return nil
}
self.pictureURL = pictureURL
}
此外,您可能需要重新考虑您用于属性的类型。 pictureURL
和carURL
属性是网址,因此更有意义的是URL
。 carPrice
属性可能是数字,因此它更有意义Double
。