当字典的值是字符串数组时使用可解码的解析

时间:2019-05-27 18:30:06

标签: arrays json swift decodable

我想解析下面的json文件,但我不断收到以下错误:

  

typeMismatch(Swift.Array,Swift.DecodingError.Context(codingPath:[],debugDescription:“预期对Array进行解码,但找到了一个字典。”,底层错误:无))

我看过stackoverflow,但是它们似乎没有帮助,因为我看不到其他json文件返回的字典值是字符串数组。有什么想法吗?

//JSON file
{
 pugs: [
   "http://27.media.tumblr.com/tumblr_lqfwfyZuyS1qiyqyfo1_500.jpg",
   "http://30.media.tumblr.com/tumblr_liic7bdmRF1qcipjro1_500.jpg",
   "http://29.media.tumblr.com/tumblr_ll3xdp73DQ1qb08qmo1_500.jpg",
   "http://29.media.tumblr.com/tumblr_lht5uy6khS1qed3e3o1_500.jpg",
   "http://26.media.tumblr.com/tumblr_lrqnevtBvM1qb08qmo1_400.jpg",
   "http://26.media.tumblr.com/tumblr_ll90kwmMJw1qzj3syo1_500.jpg",
   "http://26.media.tumblr.com/tumblr_ll7aoxHGfW1qb08qmo1_500.jpg",
   "http://24.media.tumblr.com/tumblr_lk27smb4sR1qzj3syo1_500.jpg",
   "http://26.media.tumblr.com/tumblr_lil8a1m1YM1qzj3syo1_500.jpg",
   "http://27.media.tumblr.com/tumblr_liy1xfY9G71qftdfxo1_500.jpg"
  ]
}
//Data Model
class PugList: Codable {
    var pugs: [Pug]
    var likes: Int
}

class Pug: Codable {
    var images: [String]
}

1 个答案:

答案 0 :(得分:1)

您不需要Pug类。将pugs更改为[String]

顺便说一句-除非有充分的理由使用类,否则请使用struct而不是class