2016-06-28 9 views
0

このPersonオブジェクトを持つJSONファイルがあります。それぞれの人は異なる情報を持っています。これはJSONファイルの構造です。SwiftでJSONを解析する問題

[ 
    { 
    "person": { 
     "name": "Dani", 
     "job": "Artist", 
     "country": "FR", 
     "sold": "992", 
     "email": "Dani", 
     "facebook": "Artist", 
     "twitter": "Dani", 
     "instagram": "Artist", 
     "snapchat": "Dani", 
     "photo": "Artist" 
    } 
    }, 
    { 
    "person": { 
     "name": "Alex", 
     "job": "", 
     "country": "TU", 
     "sold": "992", 
     "email": "Dani", 
     "facebook": "Artist", 
     "twitter": "Dani", 
     "instagram": "Artist", 
     "snapchat": "Dani", 
     "photo": "Artist" 
    } 
    } 
] 

jsonファイルを開くことができましたが、解析できません。これは私のコードです

func lodData() 
    { 
     let data = NSData(contentsOfURL: url!) 



     do { 
      let json = try NSJSONSerialization.JSONObjectWithData(data!, options: .AllowFragments) 

      if let person = json["person"] as? [[String: AnyObject]] { 
       for p in person { 
        if let name = p["name"] as? String { 
         names.append(name) 
        } 
       } 
      } 
     } catch { 
      print("error serializing JSON: \(error)") 
     } 

     print(names) 

    } 

結果として名前配列はまだ空です。

+0

ような配列を行うことができないことを意味: - http://stackoverflow.com/questions/25621120/simple-andを-clean-way-to-convert-json-string-to-object-in-swift –

+0

@ ei-captain-v2-0この質問は特にiOSに関連していません。すべてのメソッドはFoundationからのものです。 – Moritz

+1

構造の最上位レベルは配列です。また、人辞書は不要な辞書で包まれています。 – Desdenova

答えて

1

人が[String: String]ある辞書が...。あなたは、あなたがこの答えを勉強する必要があり、この

if let data = json as? [[String: AnyObject]] { 
     for p in data { 
      if let person = p["person"] as? [String: String]{ 
       names.append(person["name"]) 
      } 
     } 
    }