Pregunta

enter image description hereAquí está mi método para analizar JSON.

var apiUrl = NSURL(string: "http://127.0.0.1/api.php")
var apiData = NSData.dataWithContentsOfURL(apiUrl, options: NSDataReadingOptions.DataReadingUncached, error: nil)

var apiJson = NSJSONSerialization.JSONObjectWithData(apiData, options: NSJSONReadingOptions.AllowFragments, error: nil)

http://127.0.0.1/api.php URL devolvió datos.

{
    "tit":"服务器",
    "loc":[
        {
            "_name":"北京",
            "evn":"funckEvent:"
        },{
            "_name":"英国",
            "evn":"funckEvent:"
        },{
            "_name":"日本",
            "evn":"funckEvent:"
        },{
            "_name":"发过",
            "evn":"funckEvent:"
        },{
            "_name":"中国",
            "evn":"funckEvent:"
        }
    ]
}

¿Cómo bucle de matrices json?Me gustaría realizar un ciclo para imprimir el contenido de los corchetes.{"_name":"中国","evn":"funckEvent:"}

var loc = apiJson.objectForKey("loc")

¿Fue útil?

Solución

Ese código funciona perfectamente bien para mí (ejecutando un localhost servidor que sirve ese JSON exacto en 'json.html');sin embargo, no pudo imprimir hasta que especifiqué el puerto específico (en mi caso, NSURL(string: "http://127.0.0.1:8000/json.html")).¿Has intentado especificar explícitamente el puerto?

Además, puede resultar esclarecedor detectar el error devuelto por dataWithContentsofURL declarando una variable NSError y pasándola, así:

var error: NSError?
var apiData = NSData.dataWithContentsOfURL(apiUrl, options: NSDataReadingOptions.DataReadingUncached, error: &error)

Para recorrer un elemento aquí, deberá convertirlo como una matriz:

var loc = apiJson.objectForKey("loc") as [AnyObject]
for i in loc {
    println(i["_name"])
}

Esto imprimirá:

北京
英国
日本
发过
中国
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top