2016-08-03 3 views
0

私は括弧内のJSON応答を持っています。私は内側のフィールドにアクセスするのに苦労しています。 display_nameとSwiftを指定します。どうやってやるの?スウィフトの括弧内に入れ子になっているJSONにアクセスする方法は?

Optional(["result": { 
user =  { 
    "display_name" = "Max Test"; 
    email = "[email protected]"; 
    "fb_id" = 10209982554704497; 
    roles =   (
     stu 
    ); 
    schools = "<null>"; 
}; 
}]) 

私はJSONにアクセスするために使用されるコードは:

コンソール出力:

self.restApi.getProfileDetails() {responseObject, error in 

     //parse down the first layer of array 
     let response = responseObject as? [String:AnyObject] 
     print("response object when MyDetailsController opened") 
     print(response) 

     let result = response!["result"] as? [AnyObject] 
     print("result object") 
     print(result) 

     //parse down the second layer of JSON object 
     if let result = response!["result"] as? [AnyObject] { 

      print("result object when MyDetailsController opened") 
      // work with the content of "result", for example: 
      if let user = result[0] as? [String:AnyObject]{ 
       print(user) 

       let displayName = user["display_name"] 
       print("displayName") 
       print(displayName) 

      } 
    } 

常にnilであると、私は間違った方法での結果に対処しているようです

result object 
nil 
+0

NSJSONSerialization.JSONObjectWithData(responseObject!オプション:NSJSONReadingOptions.MutableContainers)使用しようとして**応答[ "結果"] –

+1

を!? [AnyObject] ** - これは問題です。オブジェクトは[AnyObject]ではなく、辞書です。 – Michal

答えて

2

dictionaryarrayではありません。

let result = response!["result"] as? [String:AnyObject] 
+0

はいこれが助けになりました。ありがとうございました –

0


結果オブジェクトからユーザオブジェクトは
ユーザオブジェクトから文字列のようなユーザ情報を3-GET 2-GET応答から結果オブジェクトを1-GET。

let response = responseObject as? [String: AnyObject] 
let result = response!["result"] as? [String: AnyObject] 

if let user = result!["user"] as? [String: AnyObject] { 
     let displayName = user["display_name"] as? String 
     let email = user["email"] as? String 
} 
関連する問題