У меня есть определенный json ответ размером более 5 МБ. Я разбираю это так ...
do {
let result = try JSONDecoder().decode(Root
.self, from: dataOfAllOrganizations!)
let organizationLists = Organization()
for element in result.organizations {
organizationLists.address = element.address
organizationLists.Name = element.Name
....
// Inserting into SQLite database
let isInserted = sharedInstance.saveOrganization_Lists(organizationLists)
}
} catch {
print(error)
}
Но, используя эту технику разбора, для анализа всех данных уходит очень большое и необычайно много времени. Я также попытался проанализировать данные из самого файла json (перетаскивая файл json в проект). Но даже это не работает. Есть ли альтернативный подход для быстрого разбора таких огромных данных и выгрузки их в базу данных.
РЕДАКТИРОВАТЬ 1 Вот так выглядит класс root ..
struct Root : Decodable {
let organizations : [Organization1]
}
struct Organization1 : Decodable {
let address: String
let Name: String
...
}
И это json ...
{
"organizations": [
{
"Addrss": "myAddress",
"Name": "TheName",
.....
},
..(There are hundreds of more such objects.)..
]
}
РЕДАКТИРОВАТЬ 2 Это код для saveOrganization_Lists
func saveOrganization_Lists(_ items: Organization) -> Bool {
var isInserted = false
sharedInstance.database!.open()
isInserted = sharedInstance.database!.executeUpdate("INSERT INTO Organization (address,Name,...) VALUES ( ?, ?, ?, ?, ?,)",withArgumentsIn: [items.name ?? "",items.address ?? "",...])
sharedInstance.database!.close()
return isInserted
}