错误:类型"(键:字符串,值:任意)"没有带有 json 的下标成员



我是 swift 3 的新手,我在 JSON 方面遇到了这个问题 这是我的功能,我不知道是否是正确的方法。

public static func parseResultsJSON(responseCars: [String : Any?]) -> Array<MisAutos>{
var arrayMisAutos : [MisAutos] = [MisAutos]()
if responseCars.count > 0{
if let jArrayCars = responseCars[KeyWords.INFORMACION_G] as? [String : Any] {
for jObjectCars in jArrayCars{
let cars : MisAutos = MisAutos()
cars.setAgAuto(agAuto: jObjectCars[KeyWords.AG_AUTO] as! String)
cars.setMarca(marca: jObjectCars[KeyWords.MARCA] as! String)
cars.setModelo(modelo: jObjectCars[KeyWords.MODELO] as! String)
cars.setAgTipo(agTipo: jObjectCars[KeyWords.Ag_TIPO] as! String)
cars.setNoSerie(noSerie: jObjectCars[KeyWords.NO_SERIE] as! String)
cars.setUrlImage(urlImage: jObjectCars[KeyWords.ARRAY_IMAGES] as! [Int : String])
cars.setPlacas(placas: jObjectCars[KeyWords.PLACAS] as! String)
arrayMisAutos.append(cars);
}
}
}
return arrayMisAutos;
}

这是我的 JSON

["Info": Optional(<__NSArrayM 0x618000054580>(
{
id = 1;
"type" = a;
name = ACURA;
Model = ILX;
images =     (
"werewr.werewr/images/image0.jpg",
"werwer.werwer/images/image1.jpg",
"werwer.werwer/images/image2.jpg",
"werwer.werwer/images/image3.jpg"
);
},
{
id = 2;
"type" = b;
name = BMW;
Model = X6;
images =     (
"werewr.werewr/images/image0.jpg",
"werwer.werwer/images/image1.jpg",
"werwer.werwer/images/image2.jpg",
"werwer.werwer/images/image3.jpg"
);
}
)
), "AutosPlan": Optional(3), "success": Optional(1)]

谢谢!

您的输入参数是错误的。它应该是一个字典数组,而不仅仅是字典。 取而代之的是:

public static func parseResultsJSON(responseCars: [String : Any]) -> Array<MisAutos>{

你需要这个:

public static func parseResultsJSON(responseCars: [[String : Any]]) -> Array<MisAutos>{

这些值也不应该是可选的。您也不应该使用强制转换,除非您是 100% 您的 JSON 响应将始终正确。

最新更新