У меня есть json вроде:
{
alt_ozellik: {
id: "2",
ilan_id: "2",
yilMin: "",
yilMax: "",
kilometre: "",
vites: "",
yakit: "Dizel",
kasatipi: "Hatchback",
renk: ""
}
}
, и это моя кодируемая структура:
struct OtomobilDetay : Decodable{
let alt_ozellik : [String:String]
}
, и я получаю элементы с этими блоками кода в задаче URLSession:
do{
let detayJson = try JSONDecoder().decode(OtomobilDetay.self, from: data)
print(detayJson.alt_ozellik)
}catch{
print("catch")
print(error)
}
Как видите, json ключи, такие как "id, ilan_id ...", должны последовательно указываться. Но print(detayJson.alt_ozellik)
этот отпечаток каждый раз отображается по-разному при выполнении задачи
Это это вывод первого запуска:
["ilan_id": "1", "yakit": "", "yilMax": "2011", "kilometre": "", "renk": "", "id": "1", "yilMin": "2010", "vites": "Manuel", "kasatipi": ""]
Это вывод второго запуска:
["vites": "Manuel", "id": "1", "kilometre": "", "kasatipi": "", "ilan_id": "1", "renk": "", "yakit": "", "yilMin": "2010", "yilMax": "2011"]
И каждый раз, когда я запускаю это, порядок меняется, но я хочу получить все это как мой json выше.
Ожидаемый результат:
["id": "1", "ilan_id": "1", "yilMin": "2010", "yilMax": "2011", "kilometre": "","vites": "Manuel" ,"yakit": "","kasatipi": "", "renk": "" ]
Я знаю, когда я изменю свой Codable, например
struct OtomobilDetay : Decodable{
let alt_ozellik : otomobilAltOzellik
}
struct otomobilAltOzellik : Decodable{
let id : String
let ilan_id : String
let yilMin : String
let yilMax : String
let kilometre : String
let vites : String
let yakit : String
let kasatipi : String
let renk : String
}
вернет то, что я ожидал, но alt_ozellik
свойства меняются на стороне сервера, поэтому мне нужно получить все с [String:String]
массивом
Итак, как я могу получить json последовательно. Я исследовал, но не могу найти решение.