我有一个像这样的jsonArray数据:

[
     {
       "data1":"data1",
       "data2":"data2",
       "data3":"data3",

       },
       {
       "data1":"data1",
       "data2":"data2",
       "data3":[
              {
              "data1":"data1",
              "daya2":"data2"
              }]
   }
]


Data3可以是字符串或类似上面的String数组。我的结构是:

  struct Datas: Decodable{
        let data1: String?
        let data2: String?
        let data3: String?
      }


当data3为字符串时没有问题,但是当data3为数组时出现错误
“预期对String进行解码,但找到了一个数组。”,底层错误:nil))

我无法解决。什么是Data3类型?任何对象都不起作用。

最佳答案

您可能要使用AnyObject类型而不是Any。然后使用if let强制转换为array和string。您也可以考虑使用非常有用的SwiftyJSON库来帮助处理JSON对象。

09-27 13:02