2017-02-25 31 views
0

私は以下のようなJSONファイルを持っています。それを解析して、私のtableviewに取り込みたいと思います。swift - JSON辞書の解析

var list: [String:JSON]? = [:] 
func loadList(){ 
ModafiliAPI.sharedInstance.refine(callback: { (refineList) in 
      if let data = refineList["facets"].dictionaryValue as [String:JSON]?{ 
       self.list = data 
       self.RefineTableView!.reloadData() 
       print(self.refineList!) 
      } 
     }) 
} 

私はから「面」にアクセスできることを守ってください。私のコードは私は何を取得したい「材料」、「カテゴリ」で、「product_types」

["facets": { 
     "material" : { 
     "data" : [ 
      { 
      "count" : 3, 
      "value" : "95% Polyester, 5% Spandex" 
      }, 
      { 
      "count" : 1, 
      "value" : "%100 Modal" 
      } 
     ], 
     }, 
     "categories" : { 
     "data" : [ 
      { 
      "id" : "7", 
      "name" : "test" 
      } 
     ], 
     }, 
     "product_types" : { 
     "data" : [ 
      { 
      "count" : 3, 
      "value" : "Sweatshirt" 
      }, 
      { 
      "count" : 1, 
      "value" : "Babet" 
      }, 
     ], 
     } 
    }] 

印刷出力。 Ambiguous reference to member 'subscript'

のUITableViewCell:

var refineList:[String:JSON]?{ 
     didSet{ 
      self.setupRefineList() 
     } 
    } 
+1

。 JSONを*実際のコレクション型やカスタムクラス/構造体にパースするための優れたツールです。これは、テーブルビューのデータソースとデリゲートメソッドでオブジェクトを逆シリアル化するために、多くの不要なオーバーヘッドを生成します。具体的な既存のテーブルビューのデータソース配列をオプションとして宣言しないでください。 – vadian

答えて

0

のXcodeがrefineListでどのような種類を知っていない、それは彼のために曖昧だ

試みしかしcellforrowatに

func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell { 
     let cell = tableView.dequeueReusableCell(withIdentifier: "RefineCell") as! RefineTableViewCell 
     cell.refineList = self.refineList?[indexPath.row] //-->>error 
     return cell 
    } 

は、私は次のエラーを取得しています

cell.refineList = self.refineList?[indexPath.row] as! [String:JSON] 

また、cell.refineListタイプを確認することもできます。

も試してください:あなたはモデルにSwiftyJSONを使うべきではありません

guard let list = refineList?[indexPath.row] else { 
     print ("Unexpected error !!") 
     return cell 
} 
cell.refineList:[String:JSON] = list as! [String:JSON] 
+0

私の質問をセルコードで更新しました。として追加されました! [String:JSON]と同じエラーが発生しています。 –

+0

あなたのセルにあるrefineListのタイプは?あなたのUITableViewCellコードを送ってください、それは役に立つことができますか? – iLandes

+0

私の質問の下部を確認してください。 –

関連する問題