Swift 2.0, Xcode 7,1Looping JSON из базы данных Разбор дает неправильные результаты
Я пытаюсь получить некоторые данные из базы данных Разбор, профильтровать, чтобы удалить дубликаты и хранить в словаре. Каждая строка синтаксиса имеет заказы, размещенные клиентом (JSON, показанный ниже), и я хочу получить это в UITableView, чтобы показать размещенный заказ. Если клиент недавно разместил несколько заказов, я хочу отфильтровать их и показать все его заказы в одном разделе табличного представления под своим идентификатором клиента.
Фильтрация работает, но по какой-то причине моя петля не дает мне точных результатов.
Анализировать Строка 1:
[{ "Клиент": "9sKSDTG7GY", "Продукт": "Burger", "Количество": "2"}]
Анализировать Ряд 2 :
[{ "Клиент": "nyRHskbTwG", "Продукт": "Sizzler", "Количество": "2"}, { "Клиент": "nyRHskbTwG", "Продукт": "Biryani" , "Количество": "2"}]
Получил эти данные и сохранил в self.custome, self.fQuantity и self.fName переменную.
Петля Я использую, как показано ниже:
let cD = self.customer
print("Customer data before filtering Unique value: \(self.customer)")
self.uniqueValues = self.uniq(cD) //Calling a function to get unique values in customer data
print("Customer data after filtering Unique value: \(self.uniqueValues)")
var newArray = [[String]]()
for var count = 0; count < self.customer.count; count++ {
for sID in self.uniqueValues {
if sID.containsString(self.customer[count]){
let dicValue = [String(self.fQuantity[count]), String(self.fName[count])]
newArray.append(dicValue)
self.dicArray.updateValue(newArray, forKey: sID)
} else {
// Do nothing...
}
}
}
print("Dictionary Values: \(Array(self.dicArray.values))")
print("Dictionary Keys: \(Array(self.dicArray.keys))")
печатная продукция, как показано ниже:
Данные клиента перед фильтрацией уникальное значение: [ "9sKSDTG7GY", "nyRHskbTwG", " nyRHskbTwG "]
данные о клиенте после фильтрации уникального значения: [" 9sKSDTG7GY», "nyRHskbTwG"]
Значения слова: [[[2 "," Burger "], [" 2 "," Sizzler "], [" 2 "," Biryani "]], [[" 2 "," Burger "]] ]
словарь Ключи: [ "nyRHskbTwG", "9sKSDTG7GY"]
Может кто-то выяснить, что я делаю неправильно?
Извините, если я не понимаю, или я использую неправильную модель. Но чтобы получить весь заказ, я должен пройти через нефильтрованный список. Как вы можете видеть, у меня есть два заказа в строке 2 тем же Клиентом. Поэтому я использую фильтрованный массив для прокрутки нефильтрованных ключей, чтобы получить значения. Возможно, я не могу объяснить это. Но можете ли вы, пожалуйста, взглянуть еще раз? –
В этом случае, возможно, вы хотите изменить порядок ваших циклов: внешний цикл будет проходить через уникальный идентификатор клиента, внутренний цикл собирает все заказы для этого идентификатора. –
Я просто попробовал это. Получение такого же результата даже после разворота? Это правильный путь к петле? Я посмотрел на него, и он должен работать, но не уверен, почему я неправильно понимаю ценности. Заказ от Row 2 как-то привязан к Row 1 клиенту. Странный. –