Как декодировать JSON с одинаковыми переменными в двух разных ключах? - PullRequest
0 голосов
/ 10 декабря 2018

Я учусь Decodables.Вот моя модель:

struct DQModel: Decodable{  
    var details: DQDetails
}

struct DQDetails: Decodable {   
    var weekly_details: WeeklyDetails   
    var your_turn: MyTurn   
    var their_turn: TheirTurn    
}

struct  WeeklyDetails: Decodable {  
    var win: Int?   
    var loss: Int?
}

struct MyTurn: Decodable {
    var name: String?   
    var pic: String?    
    var current: String?    
    var time: String?   
    var win: Int?   
    var loss: Int?    
}

struct TheirTurn: Decodable {   
    var name: String?   
    var pic: String?    
    var current: String?    
    var time: String?   
    var win: Int?   
    var loss: Int?
}

Здесь вы можете видеть, что MyTurn и TheirTurn абсолютно одинаковы с одинаковыми переменными, но это просто разные ключи.Есть ли способ, которым мне не нужно переписывать variables снова?Или в будущем, если какой-либо случай поступит так, как если бы из 10, 9 были одинаковыми, есть ли какой-то подход, который я могу использовать, чтобы сократить объем работ по копированию / вставке?

1 Ответ

0 голосов
/ 10 декабря 2018

Вы можете создать общую «структуру» для поворота и использовать их в обоих случаях (myTurn & itsTurn).Вы можете сделать это следующим образом:

struct Turn: Decodable {

var name: String?

var pic: String?

var current: String?

var time: String?

var win: Int?

var loss: Int?
}

и использовать это как:

struct DQDetails: Decodable {

var weekly_details: WeeklyDetails

var your_turn: Turn

var their_turn: Turn

}

Это уменьшит ваши усилия при создании двух разных структур.

...