2016-08-01 12 views
0

Ich habe eine Anfragewie man diesen json in swift analysieren?

Alamofire.request(.GET,HttpHelper.baseURL+HttpHelper.tripsURL,encoding:.JSON).responseJSON { 
response in 

    var json = JSON(data: response.data!) 
    print(json) 
    print(json["res"]) 
} 

durch das Ergebnis gefolgt

{ 
    "res" : "[{\"name\":\"testName\",\"lastName\":\"testLastName\"},{\"name\":\"testName\",\"lastName\":\"testLastName\"}]", 
    "status" : "success", 
    "out" : "{\"name\":\"testName\",\"lastName\":\"testLastName\"}" 
} 
[{"name":"testName","lastName":"testLastName"},{"name":"testName","lastName":"testLastName"}] 

, wie ich Daten aus res

struct User { 
    var name : String? 
    var lastName : String? 
} 

bitte dieses Problem zu lösen helfen, Struktur oder Klasse Benutzer festlegen kann) Vielen Dank !!)

+0

Ihre Antwort ist ein Array Ob-Objekte, so dass Sie als Array von Benutzer analysieren müssen, kann dies mit Alamofire-Protokolle 'ResponseObjectSerializable' und' ResponseCollectionSerializable' geschehen –

+0

Hallo, und willkommen bei SO! Was hast du bisher versucht und wo hast du versagt? Wenn Sie bereits 'Alamofire' verwenden, versuchen Sie vielleicht 'AlamofireObjectMapper'? – Losiowaty

Antwort

1

Sie können etwas tun Hing wie die

var result: [User]() 
for user in json["res"] { 
    let userTmp = User(name: user["name"], lastName: user["lastName"]) 
    result.append(userTmp) 
} 

Grüße

+0

also habe ich versucht aber nicht funktioniert (; Xcode bricht den ganzen Code ist schwarz und nicht hintergrundbeleuchtet und kompiliert nicht ( –

0

sein Grundsätzlich wäre es:

class User { 
    var name : String? 
    var lastName : String? 
} 

var theUsers = [User]() 

Alamofire.request(.GET,HttpHelper.baseURL+HttpHelper.tripsURL,encoding:.JSON) 
    .responseJSON { response in 
    var json = JSON(data: response.data!) 
    print(json) 

    theUsers = json["res"].map { 
     return User (name: $0["name"], lastName: $0.["lastName"]) 
    } 
    }) 

die Art und Weise jedoch entlang, Sie einige Schublade gesteckt benötigen. Zum Beispiel, vielleicht ersetzen json["res"] durch (json["res"] as Array<Dictionary<String,String>>), um den Typ Checker und Typ Inferenz glücklich zu halten.

+0

) Diese Lösung unterbricht auch das ganze Projekt mit Fehler: ** Befehl fehlgeschlagen wegen Signal: Segmentation fault: 11 ** –