Zuvor hatte der Code in swift 2.3result["rows"]![0]
wurde ohne Fehler leicht zusammengestellt. Aber die Dinge haben sich in swift 3 geändert, da das Ergebnis in Any
Typ und Any
Typ hat keine tiefgestellten Mitglieder umgewandelt.
result["rows"]
sollte zuerst in Array
und dann von diesem Array typecasted werden, können Sie das 0-te Element zuzugreifen, die weiter in der Art sein muss, das typecasted Sie empfangen.
Wenn Sie den obigen Code wollen wie vor arbeiten, dann können Sie SwiftyJSON
verwenden, wo Sie Ihr Ergebnis in ein JSON
Objekt umwandeln kann
Ihr Ergebnis Angenommen ist ein Objekt, das ein Array als Reihen innerhalb benannt hat.
let dictionary = result as! [String:AnyObject]
let yourResultInJSON = JSON(rawValue: dictionary)
Dann können Sie einfach diese Zeile verwenden yourResultInJSON["rows"]![0]["value"]
, die auch ein neues JSON
Objekt sein wird, wo Sie Ihre gewünschten Schlüsselwerte wie holen können:
let finalValue = yourResultInJSON["rows"]![0]["value"]
let someValue = finalValue["yourKey"].stringValue //or intValue or whatever you need to typecast
Warum Sie gegebenen negativen Punkte für diese Frage? Bitte erläutern Sie es. –
Sie sollten den Code einfügen, in dem Sie Ihr Ergebnisobjekt initialisieren. Aber selbst ohne zu wissen, welcher Typ "result" sein sollte, bin ich mir ziemlich sicher, dass Sie "result [" rows "] nicht auf einen geeigneten Typ, sondern auf" Any "schreiben, der tatsächlich kein Subskript-Member hat. –
Bitte [suche den Fehler] (https://stackoverflow.com/search?q=%5Bswift%5D+Type+Any+has+no+subscripts+members) vor dem Posten. Dies wurde schon oft zuvor beantwortet. – rmaddy