2016-11-04 8 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を返さない場合、私のコードはバグです。 JSON()が不明を返すかどうかをどうやってチェックすればよいですか?それほど文書化されていない。これに解決策がない場合は、別のパッケージを推奨しますか?デフォルトのパッケージを使用する必要がありますか?

SwiftyJsonのコードから
+0

'jsonFromServer'とは何ですか、それは' Data'かオブジェクトですか?データを正しく覚えていれば、 'JSON(data:jsonFromServer)'が必要です。そうでなければ、イニシャライザは黙って失敗します。私はSwiftyJSONの使用をやめました。最後のバージョンではあまりにも不安定になりました。しかし、「存在する」ことは間違いなく[作品](http://stackoverflow.com/a/37169327/2227743)...または私は今「働いている」と言うべきですか? :/ – Moritz

+0

私は直接serverJSONをSwiftyJSON JSONに変換することはありませんが、おそらくバックエンドの開発者の信頼の欠如です。 – Sethmr

答えて

2

、私はそのswifty-JSONでサポートされていないタイプのいずれかのことを言うことができます:

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

がエラーをチェックするために、あなたが持っているでしょうerrorセットjson中:

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

個人的には、自己文書化されていますが、詳細なドキュメントや使用例については、thisリンクを参照してください。

関連する問題