2016-11-04 88 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链接了解详细的文档/示例用法。

相关问题