-
Notifications
You must be signed in to change notification settings - Fork 6
/
Copy pathJsonReader.swift
50 lines (38 loc) · 1.28 KB
/
JsonReader.swift
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
import Foundation
/**
JSON をファイルパスから読み込む関数の名前空間。
*/
struct JsonReader {
/**
JSON ファイルから辞書を読み込みます。
# 例
```
let dict = JsonReader.dictionary(from: R.file.exampleJson.path()!)
```
- parameters:
- path: JSON ファイルのファイルパス。
- returns: 読み込まれた辞書。
*/
static func dictionary(from path: String) -> [String: Any] {
let fileHandle = FileHandle(forReadingAtPath: path)!
let data = fileHandle.readDataToEndOfFile()
let json = try! JSONSerialization.jsonObject(with: data, options: [])
return json as! [String: Any]
}
/**
JSON ファイルから配列を読み込みます。
# 例
```
let array = JsonReader.array(from: R.file.exampleJson.path()!)
```
- parameters:
- path: JSON ファイルのファイルパス。
- returns: 読み込まれた配列。
*/
static func array(from path: String) -> [AnyObject] {
let fileHandle = FileHandle(forReadingAtPath: path)!
let data = fileHandle.readDataToEndOfFile()
let json = try! JSONSerialization.jsonObject(with: data, options: [])
return json as! [AnyObject]
}
}