2016-11-04 84 views
1

我只是厭倦了這個包...這是正確的嗎?因此,如果JSON類型返回UNKNOWN,那麼稍後我會檢查一個返回TRUE的鍵嗎?SwiftyJSON返回UNKNOWN,但.exists()返回TRUE?

let json = JSON(jsonFromServer) 
print(json) // prints "unknown" 
print(json["key"].exists()) // returns true?! 

UNKNOWN是什麼意思?我已經在有效的情況下測試了代碼。現在,如果服務器沒有返回JSON,我的代碼就是bug。我做錯了什麼或者如何檢查JSON()是否返回未知?記錄如此糟糕。您是否推薦其他軟件包,或者如果沒有解決方案,我應該使用默認軟件包嗎?

+0

什麼是'jsonFromServer',是數據還是對象?如果我沒有正確記錄數據,則需要'JSON(data:jsonFromServer)',否則初始化程序會自動失敗。我停止使用SwiftyJSON,它在最後的版本中變得太不穩定。但'存在'肯定[作品](http://stackoverflow.com/a/37169327/2227743)...或者我現在應該說「工作」? :/ – Moritz

+0

我永遠不會直接將serverJSON轉換爲SwiftyJSON JSON,但也許這只是對我的後端開發缺乏信心。 – Sethmr

回答

2

從SwiftyJson的代碼,我可以說,它的任何不是由SWIFTY-JSON支持的類型:

public enum Type :Int{ 
    case Number 
    case String 
    case Bool 
    case Array 
    case Dictionary 
    case Null 
    case Unknown 
} 

,檢查錯誤,你將有errorjson

default: 
    _type = .Unknown 
    _error = NSError(domain: ErrorDomain, code: ErrorUnsupportedType, userInfo: [NSLocalizedDescriptionKey: "It is a unsupported type"]) 
} 

就我個人而言,我發現它是自我記錄的,仍然參考this鏈接瞭解詳細的文檔/示例用法。

相關問題