2017-11-29 14 views
0

このURL(https://fierce-wildwood-95045.herokuapp.com/categoria)のデータを、4つの異なる配列で解析する必要があります.1つは名前を含み、もう1つは画像URLを含み、もう1つはその説明を含みます。JSONデータを取得して配列に解析する

それは次のようになります。

nameArray = ['Iluminação','Acessibilidade','Segurança','Sinalização'] 
descriptionArray = ['Problemas com iluminação pública como postes com lâmpadas queimadas','Problemas na infraestrutura de acessibilidade como calçadas impróprias','Problemas de segurança como falta de policiamento','Problemas de sinalização como placas quebradas ou pichadas'] 
imageArray = ['https://s3-sa-east-1.amazonaws.com/pipow/categorias/icones/IluBT%403x.png','https://s3-sa-east-1.amazonaws.com/pipow/categorias/icones/[email protected]','https://s3-sa-east-1.amazonaws.com/pipow/categorias/icones/[email protected]','https://s3-sa-east-1.amazonaws.com/pipow/categorias/icones/[email protected]'] 
+0

あなたはswiftyjsonを使用していますか?それははるかに簡単になります。 –

+1

適切な構造体の単一の配列ではなく4つの配列が必要な特別な理由はありますか? 'Codable'を使ってその配列を作ることができます。また、質問を編集して、試したコード、動作していないコード、問題のあるコードを表示してください。 – Paulw11

答えて

1

をあなたはこのようAlamofireで結果を得ることができます:

Alamofire.request("https://fierce-wildwood-95045.herokuapp.com/categoria", method: .get, parameters: nil, encoding: URLEncoding.default, headers: [:]) 
     .responseJSON { respone in 
      let response_array = respone.result.value as! NSArray 
      var id_array : [NSDictionary] = [] 
      var name_array : [String] = [] 
      var description_array : [String] = [] 
      var image_array : [String] = [] 
      for i in 0..<response_array.count 
      { 
       id_array.append(((response_array[i] as! NSDictionary).value(forKey: "_id") as! NSDictionary)) 
       name_array.append(((response_array[i] as! NSDictionary).value(forKey: "nome") as! String)) 
       description_array.append(((response_array[i] as! NSDictionary).value(forKey: "descricao") as! String)) 
       image_array.append(((response_array[i] as! NSDictionary).value(forKey: "urlImagem") as! String)) 
      } 
      print("id = \(id_array)") 
      print("name = \(name_array)") 
      print("description = \(description_array)") 
      print("image = \(image_array)") 
    } 

出力 output description

+0

Swiftのネイティブコレクションタイプではなく、なぜ 'NSArray' /' NSDictionary'ですか?キーサブスクリプションではなく、なぜ 'valueForKey'ですか?なぜ「URLSession」ではなく「Alamofire」ですか? Fast Enumerationではなく、索引ベースのループが醜いのはなぜですか?なぜ(Fast Enumerationでは必要ない)一時的な変数ではなく、同じオブジェクトを何度も何度もやり直すために '(response_array [i] as!NSDictionary)'を4回呼び出すのはなぜですか?なぜsnake_caseではなく、camelCaseの変数名ですか? – vadian

関連する問題