2017-08-11 11 views
0

私はswift 3で新しく、jsonでこの問題が発生しました これは私のfuncです。 correcta方法はエラー:タイプ '(キー:文字列、値:任意)'にjsonの添え字メンバーがありません

public static func parseResultsJSON(responseCars: [String : Any?]) -> Array<MisAutos>{ 
    var arrayMisAutos : [MisAutos] = [MisAutos]() 

    if responseCars.count > 0{ 
     if let jArrayCars = responseCars[KeyWords.INFORMACION_G] as? [String : Any] { 
      for jObjectCars in jArrayCars{ 

       let cars : MisAutos = MisAutos() 

       cars.setAgAuto(agAuto: jObjectCars[KeyWords.AG_AUTO] as! String) 

       cars.setMarca(marca: jObjectCars[KeyWords.MARCA] as! String) 

       cars.setModelo(modelo: jObjectCars[KeyWords.MODELO] as! String) 

       cars.setAgTipo(agTipo: jObjectCars[KeyWords.Ag_TIPO] as! String) 

       cars.setNoSerie(noSerie: jObjectCars[KeyWords.NO_SERIE] as! String) 

       cars.setUrlImage(urlImage: jObjectCars[KeyWords.ARRAY_IMAGES] as! [Int : String]) 

       cars.setPlacas(placas: jObjectCars[KeyWords.PLACAS] as! String) 

       arrayMisAutos.append(cars); 

      } 
     } 
    } 
    return arrayMisAutos; 
} 

を行うには、これが私のJSON

["Info": Optional(<__NSArrayM 0x618000054580>(
{ 
    id = 1; 
    "type" = a; 
    name = ACURA; 
    Model = ILX; 
    images =  (
    "werewr.werewr/images/image0.jpg", 
    "werwer.werwer/images/image1.jpg", 
    "werwer.werwer/images/image2.jpg", 
    "werwer.werwer/images/image3.jpg" 
    ); 
}, 
    { 
     id = 2; 
     "type" = b; 
     name = BMW; 
     Model = X6; 
     images =  (
      "werewr.werewr/images/image0.jpg", 
      "werwer.werwer/images/image1.jpg", 
      "werwer.werwer/images/image2.jpg", 
      "werwer.werwer/images/image3.jpg" 
     ); 
} 
    ) 
    ), "AutosPlan": Optional(3), "success": Optional(1)] 

感謝です!

+0

JSONにはStringキーワードが含まれていますが、英語以外の変数名は含まれていません。コードが読みやすくなり、JSON解析エラーをデバッグする際に、どのキーあなたは解析しようとしています。 –

答えて

0

入力パラメータが間違っています。それは辞書だけでなく、辞書の配列でなければなりません。 の代わりに、この:値は、オプションではありません

public static func parseResultsJSON(responseCars: [[String : Any]]) -> Array<MisAutos>{

public static func parseResultsJSON(responseCars: [String : Any]) -> Array<MisAutos>{

あなたはこれを必要とします。 100%JSONレスポンスが常に正しい場合を除いて、強制的なキャストは使用しないでください。

+0

ありがとう!しかし、今私は、この行に "String [型]の値を添え字にすることはできません" let jArrayCars = responseCars [KeyWords.INFORMACION_G] as ? [文字列:すべて] –

関連する問題