Фон
В основном я получил API, который возвращает что-то вроде этого:
"order_detail": [
{
"id": 6938,
"order_id": 6404,
"item_price": "4",
..
"item": {
"id": 12644,
"ref": "Iced Caffe Americano",
"short_description": "",
..
и в моем декодируемом объекте я получил это
public struct OrderDetail: Decodable {
public let id: Int
public let order_id: Int
public let item_price: String?
..
public let item: Item?
и
public struct Item: Decodable {
public var id: Int
public var ref: String?
public var short_description: String?
Проблема в том, что где-то еще в коде есть метод, который ожидает, что объект Item будет иметь item_price
.
Вопрос
Что я хочу сделать, так это изменить или изменить этот постоянный объект Item и динамически добавить к нему свойство item_price
. Как я могу это сделать?
Обходные пути, другие решения
1. Изменить JSON
Я знаю, что есть много других решений этой же проблемы (я работаю над ней, пока мы говорим, которая просто модифицирует конечную точку API в соответствии с моими потребностями) ... но, опять же, этот вариант не всегда возможен (т.е. предположим, бэкэнд команда отдельная)
2. Изменить ожидание функции
Это также возможно, но и не недорого, поскольку эта функция используется во многих других местах приложения, которые я потенциально не могу контролировать