2015-05-03 75 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