У меня есть функция Swift, которая выполняет batchGetItem в AWS DynamoDB. Вывод возвращается в формате JSON, однако у меня возникают трудности с его анализом. Ниже приведен код, который я пытаюсь использовать для анализа данных, а также как выглядит вывод JSON. Буду признателен за любую оказанную помощь. Спасибо.
Функция:
func batchGetItem () {
let DynamoDB = AWSDynamoDB.default()
var keys = [Any]()
let idNumbers = Array
let n = 0
for i in 0...n {
let value = AWSDynamoDBAttributeValue()
value?.n = String(idNumbers[i])
keys.append(["numID": value])
}
let keysAndAttributesMap = AWSDynamoDBKeysAndAttributes()
keysAndAttributesMap?.keys = keys as? [[String : AWSDynamoDBAttributeValue]]
keysAndAttributesMap?.consistentRead = true
let tableMap = ["tableName" : keysAndAttributesMap]
let request = AWSDynamoDBBatchGetItemInput()
request?.requestItems = tableMap as? [String : AWSDynamoDBKeysAndAttributes]
request?.returnConsumedCapacity = AWSDynamoDBReturnConsumedCapacity.total
DynamoDB.batchGetItem(request!) { (output, error) in
if output != nil {
print("Batch Query output?.responses?.count:", output!.responses!)
print(output!.responses!)
do {
let json = try JSONSerialization.jsonObject(with: output, options: .allowFragments) as! [String:Any]
let posts = json["posts"] as? [[String: Any]] ?? []
print(posts)
} catch let error as NSError {
print(error)
}
}
if error != nil {
print("Batch Query error:", error!)
}
}
}
Сообщение об ошибке Xcode
Ambiguous reference to member 'jsonObject(with:options:)'
Выход JSON
["tableName":
[
[
"hashKey": < AWSDynamoDBAttributeValue: 0x1c00b3e60 > {
N = 1;
},
"foo": < AWSDynamoDBAttributeValue: 0x1c40b4b20 > {
S = dog;
},
"numID": < AWSDynamoDBAttributeValue: 0x1c00b3e00 > {
N = 1;
},
"name": < AWSDynamoDBAttributeValue: 0x1c80b55a0 > {
S = "John Doe";
},
"link": < AWSDynamoDBAttributeValue: 0x1c40b4b80 > {
S = "http://";
},
"idNum": < AWSDynamoDBAttributeValue: 0x1c80b5660 > {
N = 67343;
}
]
]
]