rapide, comment analyser du json complexe ?
-
20-12-2019 - |
Question
Voici 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")
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 :
北京
英国
日本
发过
中国