2016-05-06 9 views
0

おそらくそれほど問題はありませんが、検索で何も表示されません。次のように私は、JSONのモデルを持っている:スウィフトでネストされたJSON属性を解析します

//迅速な構文あなた

{user: 
    {"name": "", 
    "password": "", 
    "medium" : { 
     {"title":"", 
     {"description":""}}} 

のモデルのアイデアを与えるために、私は、ユーザーにGET要求から上記のデータモデルを取得していますし、それがすべて返されます上記の情報が、私は "タイトル"のような "中"の情報を解析しようとするとき& "説明"私は運がないよ。

"オブジェクトの値 'AnyObject'がアンラップされていないか、!または?を使用することを意味しましたか?

これを修正するために丸い赤色のXcodeメッセージをクリックすると、どこにでも!sと?sが残っていますが、エラーは残ります。ここでは、私が "媒体"からのみ解析していたとき、完璧にうまく機能していた私の解析メソッドがあります。私が間違っていることは何か考えていますか?

私は属性ごとに同じエラーを取得し、解析方法の一部: *

// Parse JSON data 
      let jsonMedium = jsonResult?["user"] as! [AnyObject] //media where user is 
      for jsonMedia in jsonMedium { 
       let media = Media() 
       *media.title = jsonMedia["medium"]["title"] as! String 
       *media.description = jsonMedia["medium"]["description"] as! String 
       *media.category = jsonMedia["medium"]["category"] as! String 
       *media.image = jsonMedia["medium"]["image"] as! String 

       *if let IDer = jsonMedia["medium"]["id"] as? Int{ 
         var stringIder = String(IDer) 
         media.identifierString = stringIder 

       } 

で示される同じエラーを持つすべての行は何でまだ運。私はそれが正規のJSONで動作する理由を理解していませんが、入れ子にするときにXcodeは何も受け付けません。すべてのあなたの助けを感謝しています。一方で、ここで完全な方法は、それはそれ以上

func parseJsonData(data: NSData) -> [Media] { 
     var medium = [Media]() 
     do { 
      let jsonResult = try NSJSONSerialization.JSONObjectWithData(data, 
                     options: NSJSONReadingOptions.MutableContainers) as? NSDictionary 
      // Parse JSON data 
      let jsonMedium = jsonResult?["media"] as! [AnyObject] 
      for jsonMedia in jsonMedium { 
       let media = Media() 
       media.title = jsonMedia["medium"]["title"] as! String 
       media.description = jsonMedia["medium"]["description"] as! String 
       media.category = jsonMedia["medium"]["category"] as! String 
       media.image = jsonMedia["medium"]["image"] as! String 

       if let IDer = jsonMedia["medium"]["id"] as? Int{ 
         var stringIder = String(IDer) 
         media.identifierString = stringIder 

       } 


       medium.append(media) 
      } 
     } catch { 
      print(error) 
     } 
     return medium 
    } 
+0

をxcodeの構文エラー?? –

+0

はい。 * –

+0

に記載されているすべての行について説明したオブジェクトの値は、スカイプに来ることができますか? –

答えて

0

を助けた場合多分それはそれを修正

let request : ASIFormDataRequest = ...your request 

     if request.responseString() != nil { 
      var jsonResponse : Dictionary<String, AnyObject>? 
      do{ 
       jsonResponse = try NSJSONSerialization.JSONObjectWithData(request.responseData(), options: NSJSONReadingOptions.AllowFragments) as? Dictionary<String, AnyObject> 

      } catch _ { 
       //some error 
      } 
     } 
1
let json = [ 
    "user" : [ 
     "name" : "My Name", 
     "password" : "My Password", 
     "medium" : [ 
      "title" : "My Title", 
      "description" : "My Description" 
     ] 
    ] 
] 

if let userJson = json["user"] as? [String : AnyObject] { 
    if let name = userJson["name"] as? String { 
     print("name: \(name)") 
    } 
    if let password = userJson["password"] as? String { 
     print("password: \(password)") 
    } 
    if let mediumJson = userJson["medium"] as? [String : AnyObject] { 
     if let title = mediumJson["title"] as? String { 
      print("title: \(title)") 
     } 
     if let description = mediumJson["description"] as? String { 
      print("description: \(description)") 
     } 
    } 
} 
0

を助けます!深い思考とグーグル/ユーチューブ/スタック/ブレーンストーミング、あなたの助けの全体の日を取ったが、それは全部が

// Parse JSON data 
      let jsonMedium = jsonResult?["user"]!["medium"] as? [AnyObject] 
      for jsonMedia in jsonMedium! { 
       let media = Media() 
       media.title = jsonMedia["title"] as! String 
       media.description = jsonMedia["description"] as! String 

代わりに行くしまっ1変更された行だった:あなたが取得している

let jsonMedium = jsonResult?["user"] as! [AnyObject] //media where user is 
      for jsonMedia in jsonMedium { 
       let media = Media() 
       *media.title = jsonMedia["medium"]["title"] as! String 
       *media.description = jsonMedia["medium"]["description"] as! String 
関連する問題