Question

enter image description hereVoici ma méthode pour analyser 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 l'URL a renvoyé des données.

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

Comment boucler des tableaux json ?Je voudrais faire du vélo pour imprimer le contenu des parenthèses{"_name":"中国","evn":"funckEvent:"}

var loc = apiJson.objectForKey("loc")

Était-ce utile?

La solution

Ce code fonctionne parfaitement pour moi (en exécutant un localhost serveur servant exactement ce JSON à 'json.html');cependant, l'impression n'a pas pu être effectuée tant que je n'ai pas spécifié le port spécifique (dans mon cas, NSURL(string: "http://127.0.0.1:8000/json.html")).As-tu essayé de spécifier explicitement le port ?

De plus, il peut être intéressant de détecter l'erreur renvoyée par dataWithContentsofURL en déclarant une variable NSError et en la transmettant, comme ceci :

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

Pour parcourir un élément ici, vous devrez le convertir en tableau :

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

Cela imprimera :

北京
英国
日本
发过
中国
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top