2017-09-19 1 views
-2
[let appUrl = URL(string: "some link")! 

let data = try Data(contentsOf: appUrl) 

let json2 = try JSONSerialization.jsonObject(with: data, options: .mutableContainers) as! [String : AnyObject] 

let post = json2["posts"] as? [[String:AnyObject]] 

// here I want to connect to image but its still tell me the problem 
//type '[[String : AnyObject]]' has no subscript members    
let image = post["image"] as [[String:AnyObject]] 
print(image) 

imageTyp '[[String: ANYOBJECT]]' hat keine Index Mitglieder

+1

Wie ist die tatsächliche Struktur Ihres JSON? Sie haben 'post' als ein Wörterbucharray deklariert, aber dann versuchen Sie, 'post' als Wörterbuch in der nächsten Zeile zu behandeln. – rmaddy

+0

wie kann ich es tun? –

+1

Können Sie eine Beispielstruktur Ihres JSONs veröffentlichen? –

Antwort

0

Dies geschieht, weil Sie

definiert
// Array of [[String:AnyObject]] 
let post = json2["posts"] as? [[String:AnyObject]] 

Und was wirst du versuchen, verwenden

let image = post["image"] as? [[String:AnyObject]] //Wrong 

Ist es möglich, auf Array von Post mit "Bild" String-Index zuzugreifen? Sie haben Index post Array übergeben

// index may be changed or you can iterate post array. 
let image = post?[2]["image"] as? [[String:AnyObject]] //Right 

Hoffnung, die Sie Idee bekommen, was Sie getan haben und was Sie zu tun haben.

+0

Danke! Es hilft mir aber eine Frage mehr Ich habe mehr Index nicht nur [2] was ich schreiben kann? lass image = post? [2] ["image"] als? [[String: AnyObject]] // Was muss ich ändern [2], um mein gesamtes Array anzuzeigen? Vielen Dank ! –

+0

@MahmudHacialiyev Wenn Sie Ihre JSON-Struktur angeben, werde ich Ihnen einige Vorschläge machen. – Jaydeep

Verwandte Themen