Я пытаюсь преобразовать тип объекта [Any]
в JSON или что-то, что я могу использовать для доступа к атрибутам.
Шаги:
- Я вызываю функцию из библиотеки для подключения к устройству Bluetooth и извлечения данных из его памяти:
device.getMemoryData(totalCount: { (count) in
print("There are \(count) elements in the memory")
}, dataArray: { (data) in
print("DATA --> \(data)")
self.processReceivedData(data)
// Here is where I receive the [Any] object
})
Полученный объект, напечатанный на шаге 1, соответствует следующему:
[{
side = 0;
dataID = 07ebcd0070bf9a8116a8898e673e96e4;
valueA = 69;
valueC = 60;
valueD = 0;
irregular = 0;
angleChange = 4;
startAngle = 34;
valueB = 106;
time = "2015-01-01 13:33:00 +0000";
},
{
side = 0;
dataID = 0cf80347a86013689586d01d1d80fca5;
valueA = 69;
valueC = 60;
valueD = 0;
irregular = 0;
angleChange = 2;
startAngle = 37;
valueB = 106;
time = "2015-01-01 15:06:00 +0000";
}]
Попытайтесь получить доступ к информации, содержащейся в объекте:
Я пытаюсь с помощью JSONSerialization
:
function processReceivedData(data:[Any]) {
guard let processedData = try? JSONSerialization.data(withJSONObject: data, options: []) as? [[String: Any]] else {
print("ERROR")
return
}
print("JSON: \(processedData)")
// Run error when trying to serialize: *** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: 'Invalid type in JSON write (__NSTaggedDate)'
*** First throw call stack:
}
Я также пытаюсь выполнить итерацию по нему, используя следующую команду for
но я получаю ошибку компиляции:
function processReceivedData(data:[Any]) {
for item in data {
for (id, object) in item {
print("ID: \(id), Object: \(object)")
}
}
}
// Compile error: Type 'Any' does not conform to protocol 'Sequence'
Мне нужен доступ к данным, чтобы проверить, какая позиция имеет самую старую временную метку и принимает значения.Как я могу получить доступ к данным?