ios - parse - Escriba ''Any'' no tiene miembros de subíndice en xcode 8 Swift 3
parse json swift (1)
Prueba esto:
let json = try JSONSerialization.jsonObject(with: data!, options:.allowFragments) as! [String:AnyObject]
Camino seguro:
do {
if let json = try JSONSerialization.jsonObject(with: data!, options:.allowFragments) as? [String:Any] {
print(json)
}
} catch let err{
print(err.localizedDescription)
}
[String:AnyObject]
emitir el tipo
Any
a Swift type
[String:AnyObject]
.
Editar: Swift 3
En swift 3, el propósito de
AnyObject
es más claro.
Por lo tanto, el tipo de Diccionario Swift más favorable será
[String:Any]
.
Any
es un alias para cualquier tipo de datos.
AnyObject
es un alias para cualquier tipo de datos derivado de una clase.
Para obtener más información, visite: https://craiggrummitt.com/2016/09/16/any-vs-anyobject-vs-nsobject-in-swift-3/
Esta pregunta ya tiene una respuesta aquí:
- Analizando correctamente JSON en Swift 3 7 respuestas
Se supone que mi aplicación debe ir a una ubicación específica para desplegar el sitio web que necesita cargar. En 2.3 funcionó a las mil maravillas, pero desde que actualicé xcode (en el que no tengo mucha experiencia) me está dando el error "tipo ''Any'' no tiene miembros de subíndice" y resaltando el "json" justo antes de la línea tres
...Retriever = json["WEB"]...
Este es el código relacionado con él.
let json = try JSONSerialization.jsonObject(with: data!, options:.allowFragments)
if let Retriever = json["WEB"] as? [[String: AnyObject]] {
for website in Retriever {
if let name = website["URL"] as? String {
self.loadAddressURL(name)
Siento que me falta algo pequeño. Si hay una mejor manera de hacer esto, me encantarían las sugerencias. La URL devuelve este JSON
{
"WEB" : [
{
"URL" : "http://www.google.com"
}
]
}
pero me encantaría poder simplificarlo
{"URL":"http://www.google.com"}