2017-01-22 14 views
0

私はプロジェクトに取り組んでいます。ウェブサイトから取得しているJSONファイルには、私の解析を開始するためのキー(キー)がありません。だから、私がコード内の行を使用すると、let userInfo = swiftyJSON[].arrayValue私はJSONファイルからすべての情報を取得します。私の問題は、私はそれをさらに解析する必要があるので、私はUITableViewを満たすことができ、私はそれをより具体的に解析することはできません。SwiftyJSONでJSONを解析する

これは私のJSONからのコード

let externalURL = "http://jsonplaceholder.typicode.com/users" 

func getJSON(){ 
      let url = URL(string: externalURL) 
      let request = NSURLRequest(url: url! as URL) 
      let session = URLSession(configuration:URLSessionConfiguration.default) 
      let task = session.dataTask(with: request as URLRequest) {(data, response, error) -> Void in 
       if error == nil { 
        let swiftyJSON = JSON(data: data!) 
        let userInfo = swiftyJSON[].arrayValue 
        print(userInfo) 
    } 
       else{ 
        print("There was an error") 
       } 
      } 
      task.resume() 
     } 
+0

「私の問題はそれをさらに解析する必要があるため、私はUITableViewを塗りつぶすことができ、より具体的に解析するようです。」私たちはあなたを助けるための十分な情報がありません。 JSONスキーマとは何ですか?どのようにあなたの解析を「より具体的」にしたいですか? – JAL

+0

JSON(名前、電話番号、電子メール)からほんの少しの情報しか得られません。 '[ { "ID":1、 "名前": "リアングラハム"、 "ユーザ名": "ブレット"、 "電子メール": "[email protected]"、 "アドレス":{ "ストリート": "Kulas光"、 "スイート": "アプト556。"、 "都市": "Gwenborough"、 "ジップコード": "92998から3874"、 "GEO":{ "LAT" : "-37.3159"、 "lng": "81.1496" } } " – Ingelbert

+0

URL [http://jsonplaceholder.typicode.com/users]をチェックすると、ファイル全体を見ることができます。 – Ingelbert

答えて

0

出発点である:

let swiftyJSON = JSON(data: data!) 
if let userInfo = swiftyJSON.array { 
    for user in userInfo { 
    print(user["name"].string, user["email"].string, user["phone"].string) 
    if let address = user["address"].dictionary { 
     print(address["city"]?.string) 
    } 
    } 
} 

すべての印刷された値はoptionalsあります。

+0

ありがとうございます。だから、私はその情報を 'UITableView、UITableViewCell'にどのように追加するのですか? – Ingelbert

+0

データソースモデル(辞書、カスタム構造体/クラスなど)によって異なります。 – vadian

+0

上記のコードは、それを辞書に入れていますか、今はまだ配列に入っています。辞書はより簡単ですか? – Ingelbert