Заполнить базу Realm из файла Excel

json
ios

#1

Есть файл JSON, кто может помочь создать xls в котором заполнять позиции (их примерно 1500) и потом импортировать в Realm. Как это сделать проще?

{
“Theme”: [
{
“name”: “Arbeit”,
“verb”: [
{
“infinitiv”: “machen”,
“translate”: “delay”,
“prateritum”: “gemacht”,
“perfect”: “machete”,
“hilfsVerb”: “hat”,
“isTested”: false,
“progress”: 0,
“level”: “a2”
},
{
“infinitiv”: “kommen”,
“translate”: “prize hat”,
“prateritum”: “gekommen”,
“perfect”: “kommte”,
“hilfsVerb”: “ist”,
“isTested”: false,
“progress”: 0,
“level”: “a2”
}
]
}
],
“Verb”: [
{
“infinitiv”: “machen”,
“translate”: “delay”,
“prateritum”: “gemacht”,
“perfect”: “machete”,
“hilfsVerb”: “hat”,
“isTested”: false,
“progress”: 0,
“level”: “a2”
},
{
“infinitiv”: “kommen”,
“translate”: “prize hat”,
“prateritum”: “gekommen”,
“perfect”: “kommte”,
“hilfsVerb”: “ist”,
“isTested”: false,
“progress”: 0,
“level”: “a2”
}
],
“__Class”: [],
“__Permission”: [],
“__Realm”: [],
“__Role”: [],
“__User”: []
}

Модели:

class Theme: Object {

@objc dynamic var name = “”

convenience init (name: String) {//, date: Date) {

self .init()

self .name = name

}

let verb = List<Verb>()

}

class Verb: Object {

@objc dynamic var infinitiv = “”

@objc dynamic var translate = “”

// @objc dynamic var presens = “”

@objc dynamic var prateritum = “”

@objc dynamic var perfect = “”

@objc dynamic var hilfsVerb = “”

// @objc dynamic var casus = “”

@objc dynamic var isTested = false

@objc dynamic var progress = Float(0)

@objc dynamic var level = “”

// @objc dynamic var date = Date()

convenience init (infinitiv: String, translate: String, progress: Float, level: String, isTested: Bool) {

self .init()

self .infinitiv = infinitiv

self .translate = translate

// self.date = date

self .progress = progress

self .level = level

self .isTested = isTested

}

convenience init (infinitiv: String ,translate: String, prateritum: String, hilfsVerb: String, perfect: String, progress: Float, level: String, isTested: Bool) {//casus: String, progress: Float, level: String, isTested: Bool) {

self .init()

self .infinitiv = infinitiv

self .translate = translate

// self.date = date

// self.casus = casus

// self.presens = presens

self .prateritum = prateritum

self .perfect = perfect

self .hilfsVerb = hilfsVerb

self .progress = progress

self .level = level

self .isTested = isTested

}

}


#2

А зачем перегонять json в xml?
Json это самый удобный формат для хранения и перегонки данных.


#3

мне нужно примерно 1500 записей вручную внести. Как это можно безболезненно сделать?


#4

А какой формат данных изначально? Json? Можно же парсить его и закидывать в базу реалма


#5

Нет. Realm. Нужен простой метод заполнения БД. БД локальная


#6

Изначальные данные в каком формате у вас?


#7

тестовая база в виде массива внутри программы. БД Realm.


#8

Мне кажется давно тут была похожая статья, где шла речь о включении файла реалма в проект, после запуска приложения файл базы просто подменялся на уже заполненый.
Думаю стоит в гугле поискать похожее.
Если у вас данные уже в реалме, тогда это в разы проще будет.


#9

в том то и дело, что надо данные заносить. Я про это выше написал. Импортировать можно через csv, но надо иметь какой-то простой путь занесения данных. Можно сказать, что сейчас база пустая. Там только тестовая БД есть. Как правильно конвертировать JSON, чтобы на выходе получить xls, который потом заполнить данными и перевести в csv и импортировать в Realm? JSON, который я привел выше - это экспорт из Realm. У меня конвертация не получилась, поэтому я здесь вопросы и задаю


#10

Сделайте изначально в экселе, перегоните этот файл в csv и создайте предзаполненную базу реалма, которой подмените дефолтную, как описано выше


#11

Вот как раз это и не получается


#12

Какой именно этап не получается? Я делала такое для себя, могу попробовать помочь


#13

Буду очень благодарен, если поможете. Мне непонятно, откуда плясать начинать


#14

Добрый день, меня тоже интересует этот вопрос если Вам не трудно напишите как это сделать. Буду благодарен.