2015-05-03 42 views
0

我使用dankogai/SWIFT-JSON摆脱Web服务的JSON响应..迅速JSON错误dankogai/SWIFT-JSON

一切都很好,但是,有时Web服务不能给我返回任何响应,因为数据库中没有数据。这不是一个问题。

但我必须处理,当我从网络服务“空”。

这是我的JSON请求:

let json = JSON(url:"http://79.172.249.175:7001/RestWebServiceApp/webresources/entity.bkkmainprtable/"+lat+"/"+lon) 

// json is valid json object... 
if (json["bkkMainPrTable"]["routeShName"].isArray){ 


    for (k, v) in json["bkkMainPrTable"] { 

     colors.append(v["routeShName"].description + " - " + v["stopName"].description) 

    } 
    } 
    // json is not a valid json object... 
else { 

     colors.append("Nincs elérhető járat") 
     sendKallerBtn.setTitle("No Post", forState: UIControlState.Normal) 

    } 

但是,它始终是零..并送花儿给人踏进别人.. 任何人可以帮助我如何检查这是一个有效的JSON对象或不..

谢谢!

解决这个:

if (json["bkkMainPrTable"].asError == nil){ 
.... 
} 

回答

1

当然,我可以提供帮助。

我打了一个电话:

http://79.172.249.175:7001/RestWebServiceApp/webresources/entity.bkkmainprtable/47.490477/19.030486

得到的回应:

{"bkkMainPrTable":[{"id":"7857","routType":"3","routeShName":"178","stopId":"F00002","stopLat":"47.490477","stopLatStirng":"47.490477","stopLon":"19.030486","stopLonString":"19.030486","stopName":"Zsolt utca"},{"id":"7954","routType":"3","routeShName":"105","stopId":"F00087","stopLat":"47.496422","stopLatStirng":"47.496422","stopLon":"19.03071","stopLonString":"19.03071","stopName":"Krisztina tĂŠr"},{"id":"7946","routType":"0","routeShName":"18","stopId":"F00080","stopLat":"47.493779","stopLatStirng":"47.493779","stopLon":"19.038183","stopLonString":"19.038183","stopName":"DĂłzsa GyĂśrgy tĂŠr"},{"id":"7943","routType":"3","routeShName":"916","stopId":"F00077","stopLat":"47.494777","stopLatStirng":"47.494777","stopLon":"19.037665","stopLonString":"19.037665","stopName":"DĂłzsa GyĂśrgy tĂŠr"}]} 

把它放在那里:

http://jsonlint.com/

,并得到了结果:

{ 
    "bkkMainPrTable": [ 
     { 
      "id": "7857", 
      "routType": "3", 
      "routeShName": "178", 
      "stopId": "F00002", 
      "stopLat": "47.490477", 
      "stopLatStirng": "47.490477", 
      "stopLon": "19.030486", 
      "stopLonString": "19.030486", 
      "stopName": "Zsolt utca" 
     }, 
     { 
      "id": "7954", 
      "routType": "3", 
      "routeShName": "105", 
      "stopId": "F00087", 
      "stopLat": "47.496422", 
      "stopLatStirng": "47.496422", 
      "stopLon": "19.03071", 
      "stopLonString": "19.03071", 
      "stopName": "Krisztina tĂŠr" 
     }, 
     { 
      "id": "7946", 
      "routType": "0", 
      "routeShName": "18", 
      "stopId": "F00080", 
      "stopLat": "47.493779", 
      "stopLatStirng": "47.493779", 
      "stopLon": "19.038183", 
      "stopLonString": "19.038183", 
      "stopName": "DĂłzsa GyĂśrgy tĂŠr" 
     }, 
     { 
      "id": "7943", 
      "routType": "3", 
      "routeShName": "916", 
      "stopId": "F00077", 
      "stopLat": "47.494777", 
      "stopLatStirng": "47.494777", 
      "stopLon": "19.037665", 
      "stopLonString": "19.037665", 
      "stopName": "DĂłzsa GyĂśrgy tĂŠr" 
     } 
    ] 
} 

Valid JSON

+0

肯定.. :)如果通过GPS座标在数据库数据..的​​WS会给回一个有效的JSON和我的SWIFT代码将处理它..但尝试像调用这个:http://79.172.249.175:7001/RestWebServiceApp/webresources/entity.bkkmainprtable/47.1897825/19.3225479 .. ws会让你回到空..这就是我必须在迅速代码处理.. – solarenqu

+0

我猜那么你的'让json'将成为'nil'。 – kostek

+1

解决.. if(json [“bkkMainPrTable”] .asError == nil){ – solarenqu