728x90
json파일 dictionary로 불러오기
- Bundle에서 해당 파일의 url을 불러온다.
- JSONSerialization에서 url을 이용해서 만든 Data 오브젝트에서 jsonObject를 생성하고 [String: Any] 타입으로 캐스팅한다.
if let url = Bundle.main.url(forResource: "Person", withExtension: "json") {
if let jsonDict = try? JSONSerialization.jsonObject(with: Data(contentsOf: url)) as? [String: Any] {
print(jsonDict["name"] ?? "")
print(jsonDict["age"] ?? 0)
}
}
/*
Park
20
*/
json파일을 객체로 Decoding하기
class Person: Decodable {
let name: String
let age: Int
let pet: Pet
}
class Pet: Decodable {
let name: String
let age: Int
let species: PetSpecies
}
enum PetSpecies: String, Decodable {
case cat
case dog
}
if let url = Bundle.main.url(forResource: "Person", withExtension: "json") {
if let person = try? JSONDecoder().decode(Person.self, from: Data(contentsOf: url)) {
print(person.name)
print(person.age)
print(person.pet.name)
print(person.pet.age)
print(person.pet.species)
}
}
/*
Park
20
Nabi
7
cat
*/
728x90
'iOS > 설명' 카테고리의 다른 글
[iOS] UIView.transition (0) | 2022.04.24 |
---|---|
[iOS] performBatchUpdates (0) | 2022.04.24 |
[iOS] Bundle (0) | 2022.04.22 |
[iOS] 앱 terminate되게 하는 법 (0) | 2022.04.22 |
[iOS] 레이아웃 update cycle (0) | 2022.04.18 |
댓글