신속한 복잡한 JSON을 구문 분석하는 방법?
-
20-12-2019 - |
문제
>
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은 데이터를 반환합니다.
{
"tit":"服务器",
"loc":[
{
"_name":"北京",
"evn":"funckEvent:"
},{
"_name":"英国",
"evn":"funckEvent:"
},{
"_name":"日本",
"evn":"funckEvent:"
},{
"_name":"发过",
"evn":"funckEvent:"
},{
"_name":"中国",
"evn":"funckEvent:"
}
]
}
.
JSON 배열을 반복하는 방법?
Brackets{"_name":"中国","evn":"funckEvent:"}
var loc = apiJson.objectForKey("loc")
해결책
해당 코드는 나를 위해 완벽하게 작동합니다 ( 'json.html'에서 정확한 JSON을 제공하는 localhost
서버를 실행하십시오.);그러나 특정 포트 (내 경우, NSURL(string: "http://127.0.0.1:8000/json.html")
)를 지정할 때까지 인쇄하지 못했습니다.포트를 명시 적으로 지정 했습니까?
는 NSError 변수를 선언하고이를 전달하여 dataWithContentsofURL
가 리턴 한 오류를 실제로 잡아서
var error: NSError?
var apiData = NSData.dataWithContentsOfURL(apiUrl, options: NSDataReadingOptions.DataReadingUncached, error: &error)
.
여기에서 요소를 반복하려면 배열로 캐스팅해야합니다.
var loc = apiJson.objectForKey("loc") as [AnyObject]
for i in loc {
println(i["_name"])
}
.
이 인쇄됩니다 :
北京
英国
日本
发过
中国
. 제휴하지 않습니다 StackOverflow