comparison LazyBear/Global functions/ParseJSON.swift @ 338:71a9c0e61783

Implementing SearchView
author Dennis Concepción Martín <66180929+denniscm190@users.noreply.github.com>
date Thu, 01 Apr 2021 20:55:09 +0200
parents
children e81c18164afb
comparison
equal deleted inserted replaced
337:31f2838b2de7 338:71a9c0e61783
1 //
2 // ParseJSON.swift
3 // LazyBear
4 //
5 // Created by Dennis Concepción Martín on 1/4/21.
6 //
7
8 import Foundation
9
10 let companyTags: [CompanyTagsModel] = parseJSON("companyTags.json")
11
12 func parseJSON<T: Decodable>(_ filename: String) -> T {
13 let data: Data
14
15 guard let file = Bundle.main.url(forResource: filename, withExtension: nil)
16 else {
17 fatalError("Couldn't find \(filename) in main bundle.")
18 }
19
20 do {
21 data = try Data(contentsOf: file)
22 } catch {
23 fatalError("Couldn't load \(filename) from main bundle:\n\(error)")
24 }
25
26 do {
27 let decoder = JSONDecoder()
28 return try decoder.decode(T.self, from: data)
29 } catch {
30 fatalError("Couldn't parse \(filename) as \(T.self):\n\(error)")
31 }
32 }