Форум программистов, компьютерный форум, киберфорум
Наши страницы
Swift
Войти
Регистрация
Восстановить пароль
 
ЕвгенийКот
3 / 3 / 0
Регистрация: 17.04.2013
Сообщений: 57
1

Массивы, структурамы и дикшенари -> JSON

08.10.2017, 12:07. Просмотров 434. Ответов 0
Метки нет (Все метки)

Привет всем! Есть сложность в написании правильной структуры модели для работы с firebase, модель которая уже есть состоит только лишь из корневых элементов. Но в базе есть еще узел который нужно добавить в модель.

функция чтения снэпшота
C
1
2
3
4
5
6
7
    func LoadDataFromBase(){
        DatabaseService.shared.ICOReference.observe(.value, with: { (snapshot) in
            guard let postsSnapShot = ICOSnapShot(with: snapshot) else {return}
            ICOListLiked = postsSnapShot.postsLiked
            self.likedTableView.reloadData()
        })
     )
структура, там где комменты, я пытался добавить структуру узла news (который нужно добавить в общую структуру)
C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
struct ICOs {
    let ICOId: String
    let descript: String
    let endDate: String
    let Invest: String
    let link: String
    let startDate: String
    let sum: String
//    var news = [ICONew] ()
    let symbol: String
    let title: String
    let tokenPrice: String
    let whitePaperLink: String
    init?(ICOId: String, dict: [String: Any] ) {
        self.ICOId=ICOId
        guard let descript = dict["descript"] as? String,
        let endDate = dict["endDate"] as? String,
        let Invest = dict["invest"] as? String,
        let link = dict["link"] as? String,
        let startDate = dict["startDate"] as? String,
        let sum = dict["sum"] as? String,
//        let news = dict["news"] as? [ICONew],
        let symbol = dict["symbol"] as? String,
        let title = dict["title"] as? String,
        let tokenPrice = dict["tokenPrice"] as? String,
        let whitePaperLink = dict["whitePaperLink"] as? String
            else {return nil}
        self.descript = descript
        self.endDate = endDate
        self.Invest = Invest
        self.link = link
        self.startDate = startDate
        self.sum = sum
//        self.news = news
        self.symbol = symbol
        self.title = title
        self.tokenPrice = tokenPrice
        self.whitePaperLink = whitePaperLink
    }
}
структура самого снапшота
C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
struct ICOSnapShot {
    let posts: [ICOs]
    let postsEnded: [ICOs]
    let postsNotStarted: [ICOs]
    let postsGoingOn: [ICOs]
    let postsLiked: [ICOs]
    init?(with snapshot: DataSnapshot) {
        var posts = [ICOs] ()
        var postsEnded = [ICOs] ()
        var postsNotStarted = [ICOs] ()
        var postsGoingOn = [ICOs] ()
        var postsLiked = [ICOs] ()
        guard let snapDict = snapshot.value as? [String: [String: Any]] else { return nil }
        for snap in snapDict {
            guard let post = ICOs (ICOId: snap.key, dict: snap.value) else {continue}
            let ICOId = post.ICOId
            let dateEnd = NormalizeDate(stringDate: post.endDate)
            let dateStart = NormalizeDate(stringDate: post.startDate)
            if dateEnd < Date() {
                postsEnded.append(post)
            }
            if dateStart > Date() {
                postsNotStarted.append(post)
            }
            if dateStart < Date() && dateEnd > Date(){
                postsGoingOn.append(post)
            }
            for Liked in LikedArray {
                if Liked == ICOId {
                    postsLiked.append(post)
                }
            }
            posts.append(post)
        }
        self.posts = posts.sorted{$0.startDate < $1.startDate}
        self.postsEnded = postsEnded.sorted{$0.endDate < $1.endDate}
        self.postsNotStarted = postsNotStarted.sorted{$0.startDate < $1.startDate}
        self.postsGoingOn = postsGoingOn.sorted{$0.endDate < $1.endDate}
        self.postsLiked = postsLiked.sorted{$0.startDate < $1.startDate}
    }
}

Заказываю контрольные, курсовые, дипломные и любые другие студенческие работы здесь.

0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
08.10.2017, 12:07
Ответы с готовыми решениями:

Json - массивы и обьекты
Доброго времени суток... Кто может подсказать как разобрать вот такой Json....

Json http парсинг. Массивы
Здравствуйте. Нужно спарсить json данные. Есть php файл, который генерирует...

Ошибка при обработке Json - Cannot deserialize the current JSON array because the type requires a JSON object
Всем привет! Помогите, плиз, разобраться с ошибкой: An unhandled exception...

Java, JSON и JSON Simple. Непонятка с созданием объекта JSON на сервере для отправки на фронт
Здравствуйте. Разрабатываю интернет-магазин на Java. Мне нужно на фронте...

Ошибка при обработке Json - Cannot deserialize the current JSON array because the type requires a JSON object
Дополнительные сведения: Cannot deserialize the current JSON object (e.g....

0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
08.10.2017, 12:07

JSON-ответ. Объекты и массивы объектов
Добрый день! Есть определенный сайт, который отвечает на POST-запрос. Через...

JavaScript не получает массивы PHP в формате JSON
Добрый день форумчане, Создал две файлы: index.php (клиентская сторона) и...

SyntaxError: JSON.parse: unexpected character at line 1 column 2 of the JSON data
Всем привет, пытаюсь произвести запрос к обработчику c помощью AJAX, выдает...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
1
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru