Помогите из массива вытащить значения

swift4

#1
   if let dict = (try? JSONSerialization.jsonObject(with: data!)) as? [[String: String]]  { 
for index in 0..<dict.count {

                        print(index+1,dict[index])
                       }

Вывод вот такой:
1 [“Address”: “Саранск город,улица,Советская, д.65,п.5”]
2 [“Address”: “Ярославль город,улица,Свободы, д.43,офисы,п.1”]
3 [“Address”: “Саранск город,улица,Советская, д.65,п.4”]
А мне нужно вот в таком виде:
Саранск город,улица,Советская, д.65,п.5
Ярославль город,улица,Свободы, д.43,офисы,п.1
Саранск город,улица,Советская, д.65,п.4
Подскажите как сделать


#2

У вас же в ответе всё есть! У вас распечатывается массив словарей. Чтобы получить значение, отправьте ключ словарю!

print(index+1,dict[index]["Address"])

Рекомендую вам сначала пройти базовый курс по синтаксису языка.


#3

Я прошел! Но не все сразу понимаю, на конкретных примерах реализую содержания курса!
И еще вопрос, как предать мне эти значения в другой vc, чтобы уже там заполнить tableView этими значениями?


#4

Это код где цикл а далее переход на vc

 if dict[0]["Address"] != nil  {
                      
                       for index in 0..<dict.count {

                        print(index+1,dict[index]["Address"]!)
                           }
                            //let Address = dict
                            //print(Address)
                            //---------------- Переход на меню---------------------
                            DispatchQueue.main.async {
                                if let storyboard = self.storyboard {
                                    let vc = storyboard.instantiateViewController(withIdentifier: "ViewControllerM")
                                    if vc is ViewControllerM {
                                       
                                        self.navigationController?.pushViewController(vc, animated: true)

#5

Если вы пишете бэкенд на PHP, то как вы можете не уметь пользоваться массивами? Они везде одинаковые. Так же не стоит создавать одну и туже тему несколько раз. На форуме от вашего имени уже тем 5 по этим массивам и передачи данных в другой VC. Пишите все вопросы в одной теме.


#6

Всё же рекомендую попытаться понять каждый урок, прежде чем переходить к следующему - это важно. Вот ссылка на страницу с коллекциями главного раздела этого сайта - отлично переведённой документации! Там всё понятно.

Из этого видно, что у вас dict - это массив словарей (в массиве 3 объекта и каждый объект - это словарь). Чтобы получить доступ к объекту массива, используется индекс (это Int): dict[0], dict[1]). Вы получите объект массива - один словарь: например dict[0] - это [“Address”: “Саранск город,улица,Советская, д.65,п.5”]. Чтобы дальше получить доступ к значению этого словаря, нужно просто указать ключ “Address”, значение которого вам нужно получить. Вот и получается dict[index][“Address”], где index - это значения от 0 до количства объектов в массиве dict.count исключительно, которые как раз перебираются в цикле.

Если у вас нет подписки, то вполне достаточно прочитать все разделы главной страницы сайта :slight_smile:

З.Ы. И да, ради приличия, не стоит плодить много тем - это затрудняет поиск по сайту в будующем.


#7

На счет, тем понял, подписка есть, с адресами я понял, мне вот тут нужно вставить отправку этих значений

   if dict[0]["Address"] != nil  {
                      
                       for index in 0..<dict.count {

                    print(index+1,dict[index]["Address"]!)
                       }
                       
                        //---------------- Переход на меню---------------------
                      //  DispatchQueue.main.async {
                            if let storyboard = self.storyboard {
                                let vc = storyboard.instantiateViewController(withIdentifier: "ViewControllerM")
                                if vc is ViewControllerM {
                                  
                                    self.navigationController?.pushViewController(vc, animated: true)

#8

Вам в другой теме написали, как отправить :wink:


#9

Добрый день! Принтую переменную допустим print(value), в консоли печатает: token = oelwkfniwjnvipw444r2t;
ну это в пример, далее мне нужно само значение после равно, как достать? не смейтесь)


#10

value.split(" = ").last


#11

Value of type ‘Any’ has no member ‘split’
Cast ‘Any’ to ‘AnyObject’ or use ‘as!’ to force downcast to a more specific type to access members


#12
Alamofire.request(url, method: .post, parameters: params).validate().responseJSON { [weak self] response in
          
            switch response.result {
            case .success(let value):
                if let authorizationData = try?
                    Mapper<DataAuthorization>().map(JSONObject: value) {
                  
                   
                    print("vtoroe \(value)")
                    
                 keySerp = value.split(" = ").last
                } else {
                    self?.view.show(error: ErrorServer.defaultError)
                }
            case .failure(let error):
                self?.view.show(error: error)
                print(error)
            }

#13

у вас же маппер есть, доставайте через него
и в следующий раз приводите код, что бы не было такого “Value of type ‘Any’ has no member ‘split’”. я вам давал ответ по вашему вопросу, где ни слова не сказано что у вас за переменная.


#14

.split это метод String'а - кастите до него. Ну и действительно мап же достаёте - там и делайте.