С наступающим Новым годом! Форум программистов, компьютерный форум, киберфорум
Наши страницы
Swift
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.67/3: Рейтинг темы: голосов - 3, средняя оценка - 4.67
newlinerus
0 / 0 / 0
Регистрация: 16.09.2015
Сообщений: 11
1

JSON to REALM

31.08.2017, 22:39. Просмотров 605. Ответов 4
Метки нет (Все метки)

При кешировании данных возникла проблема переноса json в локальное хранилище

Каким образом можно перенести два данных JSON файла в REALM и связать по "abc-news-au" к примеру...
Пересмотрел все что только можно, но знаний не хватает дабы нормально по человеческий это сделать! JSON достать могу, перенести не получается
Objective-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
self.sources = [ArticleSources]()
            do{
                                
                let json = try JSONSerialization.jsonObject(with: data!, options: .mutableContainers) as! [String : AnyObject]
                
                if let SourcesFromJson = json["sources"] as? [[String : AnyObject]]{
                    for SourceFromJson in SourcesFromJson{
                        let source = ArticleSources()
                        if let name = SourceFromJson["name"] as? String, let id = SourceFromJson["id"] as? String, let  url = SourceFromJson["url"] as? String{
                            
                            source.SourceName = name
                            source.SourceId = id
                            source.SourceUrl = url
                        }
                        self.sources?.append(source)
                    }
                }
                DispatchQueue.main.async {
                    self.MenuTableView.reloadData()
                    self.MenuCollectionView.reloadData()
 
                }
     
            } catch let error{
                print(error)
            }
SWIFT3
Objective-C
1
2
3
4
5
6
7
8
9
10
11
class SrcLinkRealm : Object {
    dynamic var id: String = ""
    dynamic var name: String = ""
    dynamic var descr: String = ""
    
    let links = List<SrcLinkRealm>()
    
    override static func primaryKey() -> String? {
        return "id"
    }
}
Objective-C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
class ArtLink {
    var source: String = ""
    var name: String = ""
    var descr: String = ""
    var url: String = ""
    var urlImg: String = ""
}
 
 
 
class ArtLinkRealm : Object {
    dynamic var source: String = ""
    dynamic var name: String = ""
    dynamic var descr: String = ""
    dynamic var url: String = ""
    dynamic var urlImg: String = ""
    
    
    override static func primaryKey() -> String? {
        return "source"
    }
}
JSON
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
{
"status": "ok",
-"sources": [
-{
"id": "abc-news-au",
"name": "ABC News (AU)",
"description": "Australia's most trusted source of local, national and world news. Comprehensive, independent, in-depth analysis, the latest business, sport, weather and more.",
"url": "http://www.abc.net.au/news",
"category": "general",
"language": "en",
"country": "au",
-"urlsToLogos": {
"small": "",
"medium": "",
"large": ""
},
-"sortBysAvailable": [
"top"
]
},
-{
"id": "al-jazeera-english",
"name": "Al Jazeera English",
"description": "News, analysis from the Middle East and worldwide, multimedia and interactives, opinions, documentaries, podcasts, long reads and broadcast schedule.",
"url": "http://www.aljazeera.com",
"category": "general",
"language": "en",
"country": "us",
-"urlsToLogos": {
"small": "",
"medium": "",
"large": ""
},
-"sortBysAvailable": [
"top",
"latest"
]
},
}
JSON
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
{
"status": "ok",
"source": "abc-news-au",
"sortBy": "top",
-"articles": [
-{
"author": null,
"title": "Murray Darling Basin plan a 'failure', farmers claim water backed up in Qld",
"description": "Farmers say the Murray Darling Basin plan has failed as it allows cotton irrigators to replace water sold back to the Commonwealth with extra floodwaters caught off the plains.",
"url": "http://www.abc.net.au/news/2017-08-31/murray-darling-basin-plan-failure-farmers-claim-water-backed-up/8859412",
"urlToImage": "http://www.abc.net.au/news/image/8860954-1x1-700x700.jpg",
"publishedAt": "2017-08-31T13:41:25Z"
},
-{
"author": null,
"title": "Twin blasts rock Texas chemical plant as Harvey storm danger moves east",
"description": "Fires and two explosions rock a Houston-area chemical plant in the wake of Tropical Storm Harvey.",
"url": "http://www.abc.net.au/news/2017-08-31/blasts-rock-texas-chemical-plant-as-harvey-moves-east/8861370",
"urlToImage": "http://www.abc.net.au/news/image/8861430-1x1-700x700.jpg",
"publishedAt": "2017-08-31T18:30:05Z"
},]
}
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
31.08.2017, 22:39
Ответы с готовыми решениями:

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

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

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

Realm of Racket
Realm of Racket Learn to Program, One Game at a Time! by Matthias Felleisen,...

GlassFish Realm и соль
Здравствуйте! В GlassFish есть realms, которые позволят легко реализовать...

4
noname_club
107 / 98 / 12
Регистрация: 01.05.2013
Сообщений: 603
01.09.2017, 13:39 2
вам не хватает практики, начните с CoreData
0
newlinerus
0 / 0 / 0
Регистрация: 16.09.2015
Сообщений: 11
01.09.2017, 13:56  [ТС] 3
Пробовал и CoreData... та же проблема, не могу сформировать связи и хотяб написать правильно класс
0
noname_club
107 / 98 / 12
Регистрация: 01.05.2013
Сообщений: 603
01.09.2017, 14:07 4
я же говорю у вас мало практики.
Возможно вы не понимаете принципы ООП
Почитайте про паттерны
0
Вложения
Тип файла: txt link.txt (61 байт, 4 просмотров)
ExFau$t
638 / 538 / 122
Регистрация: 08.05.2012
Сообщений: 2,707
01.09.2017, 18:26 5
С CoreData куча примеров в интернете, лучше сразу делать через сиглтон, а не через AppDelegate. Таких примеров тоже полно. Связи там формируются на уровне модели.

Добавлено через 3 часа 38 минут
Хмм, кстати, там ниже есть моя тема "Progress dialog", можешь там посмотреть пример синглтона CoreDataManager и примера использования. Там есть пара косяков, со временем разберёшься, главное работает.
2
01.09.2017, 18:26
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
01.09.2017, 18:26

Проблема с элементом Realm (Tomcat 4.1.24)
Прописываю в файле server.xml следующее: &lt;Realm...

Поиск в Realm +RxJava+RxBindings
Есть код поиска,но мне не нравится его поведение, есть ощущение что ищется...

Realm migration что то не так :(
Ребят подскажите плз что делаю не так. Добавил поле. Поставил сеттеры и...


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

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

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