2016-11-04 9 views
1

Ich bin nur müde mit diesem Paket ... ist das korrekt? Wenn also ein JSON-Typ UNKNOWN zurückgibt, überprüfe ich später nach einem Schlüssel, der TRUE zurückgibt.SwiftyJSON gibt UNKNOWN zurück, aber .exists() gibt TRUE zurück?

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

Was bedeutet UNBEKANNT? Ich habe den Code mit guten Fällen getestet, in denen er funktioniert hat. Jetzt, wenn der Server keinen JSON zurückgibt, ist mein Code fehlerhaft. Was mache ich falsch oder wie kann ich überprüfen, ob JSON() unbekannt zurückgibt? Es ist so schlecht dokumentiert. Empfiehlst du ein anderes Paket oder sollte ich das Standardpaket verwenden, wenn es keine Lösung gibt?

+0

Was ist 'jsonFromServer', ist es' Data' oder ein Objekt? Wenn ich mich richtig an Daten erinnere, brauche ich 'JSON (data: jsonFromServer)' sonst schlägt der Initialisierer im Hintergrund fehl. Ich habe SwiftyJSON eingestellt, es ist in den letzten Versionen zu instabil geworden. Aber "existiert" definitiv [funktioniert] (http://stackoverflow.com/a/37169327/2227743) ... oder soll ich jetzt "gearbeitet" sagen? :/ – Moritz

+0

Ich würde ServerJSON nie direkt in SwiftyJSON JSON konvertieren, aber vielleicht ist es nur ein Mangel an Vertrauen in meine Backend-Entwicklung. – Sethmr

Antwort

2

Von SwiftyJson Code, kann ich sagen, dass seine jede von der Art, die von swifty-json nicht unterstützt wird:

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

für Fehler zu überprüfen, Sie error Satz in json haben:

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

Persönlich finde ich es selbst dokumentiert, noch verweisen auf this Link für detaillierte Dokumentation/Beispiel Verwendung.

Verwandte Themen