Вы можете использовать codable
для сериализации данных и сохранения массива словарей вместо добавления двух разных массивов имени и идентификатора.
Я добавил данные в массив:
let tempArray : [[String:Any]] = [["id_ser_reg":"103",
"n_ser_reg":"Operation NOC",
],
["id_ser_reg":"120",
"n_ser_reg":"Freelance",
]
]
и создал jsonData для использования codable
:
do {
let jsonData = try JSONSerialization.data(withJSONObject: tempArray, options: .prettyPrinted)
print(jsonData)
} catch let error as NSError {
print(error)
}
Для Codable
сначала создайте struct
:
struct JsonResponse: Codable {
var id_ser_reg : String?
var n_ser_reg : String?
}
и для сериализации:
do {
let serverResponseData = try JSONDecoder().decode([JsonResponse].self, from: jsonData)
print(serverResponseData[0].id_ser_reg!)
} catch let error as NSError {
print(error)
}
Как видите, serverResponseData
- это массив, теперь имеющий имя и идентификатор в каждом индексе. Codable
уменьшит вашу строку кода добавления данных один за другим в массив.
Редактировать
Если вы хотите пойти с тем, что вы сделали. Вы можете сделать еще одну вещь.
Создать массив как:
var arrayData = [[String:Any]]()
и в вашем ответе:
if let dictionaryArray = data as? [[String:Any]] {
self.arrayData = dictionaryArray
}
Теперь у вас есть массив словарей, которые вы можете использовать, когда вам нужны данные как:
let singleData = self.arrayData[0] as! [String:Any]
print(singleData["id_ser_reg"])
print(singleData["n_ser_reg"])
Изображение, которое вы добавили в вопросе, не объясняет, каков точный пользовательский интерфейс и как вы используете данные для заполнения пользовательского интерфейса. Если возможно, добавьте точный код, а не изображение кода, и добавьте логику интеграции данных с пользовательским интерфейсом в вопросе.
Надеюсь, что мой ответ поможет вам добиться того, что вы пытаетесь.