Saltar al contenido

¿Cómo recorrer JSON con SwiftyJSON?

Luego de buscar en varios repositorios y foros de internet al final hemos hallado la solución que te enseñaremos ahora.

Solución:

Si quieres recorrer json["items"] arrayprobar:

for (key, subJson) in json["items"] 
    if let title = subJson["title"].string 
        println(title)
    

En cuanto al segundo método, .arrayValue devoluciones noOptional arrayDeberías usar .array en cambio:

if let items = json["items"].array 
    for item in items 
        if let title = item["title"].string 
            println(title)
        
    

Me resulta un poco extraño explicarme a mí mismo, porque en realidad uso:

for (key: String, subJson: JSON) in json 
   //Do something you want

da errores de sintaxis (al menos en Swift 2.0)

correcto fue:

for (key, subJson) in json 
//Do something you want

donde de hecho key es un string y subJson es un objeto JSON.

Sin embargo, me gusta hacerlo un poco diferente, aquí hay un ejemplo:

//jsonResult from API request,JSON result from Alamofire
   if let jsonArray = jsonResult?.array
    
        //it is an array, each array contains a dictionary
        for item in jsonArray
        
            if let jsonDict = item.dictionary //jsonDict : [String : JSON]?
            
                //loop through all objects in this jsonDictionary
                let postId = jsonDict!["postId"]!.intValue
                let text = jsonDict!["text"]!.stringValue
                //...etc. ...create post object..etc.
                if(post != nil)
                
                    posts.append(post!)
                
            
        
   

En el bucle for, el tipo de key no puede ser del tipo "title". Ya que "title" es un stringve por : key:String. Y luego Inside the Loop puedes usar específicamente "title" Cuándo lo necesitas. Y también el tipo desubJson tiene que ser JSON.

Y dado que un archivo JSON puede considerarse como 2D arrayla json["items'].arrayValue devolverá varios objetos. Es muy recomendable utilizar: if let title = json["items"][2].arrayValue.

Eche un vistazo a: https://developer.apple.com/library/ios/documentation/Swift/Conceptual/Swift_Programming_Language/Types.html

Te mostramos reseñas y puntuaciones

Si eres capaz, tienes el poder dejar un escrito acerca de qué te ha gustado de esta noticia.

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *