Невозможно проанализировать большой json ответ - PullRequest
0 голосов
/ 29 апреля 2020

У меня есть определенный 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

   }
...