Mercurial > public > lazybear
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 } |