You should decode your object manually:
struct Data: Codable {
  let name: String?
  let dataArray: [User]
   enum Keys: String, CodingKey {
              case name
              case dataArray
   }          
   init(from decoder: Decoder) throws {
       let container = try decoder.container(keyedBy: Keys.self)
        name = try? container.decode(String.self, forKey: .name)
        dataArray =  (try? container.decode(User, forKey: . dataArray)) ?? []
    }
}
Or you can create a wrapper :
struct Data: Codable {
  let name: String?
  private let _dataArray: [User]?
  var dataArray : [User] {
      get {
        return   _dataArray ?? []
      }
   }
   enum Keys: String, CodingKey {
                case name
                case dataArray
   }
}