JSON 문자열을 Dictionary로 변환

3645 단어 SwiftSwift3.0
JSON에 포함되는 어떤 항목이, 암호화되어 더욱 Base64 Encode 된 JSON 캐릭터 라인이라고 하는 일이 있어, 일단 Dictionary로서 취급하고 싶었으므로 조사한 메모.
JSONSerialization.jsonObject(with: data, options: []) as? [String: Any] 정도로 할 수 있으므로, 의외로 간단했습니다.
변환에 실패했을 때에 에러가 던져지므로, 이용할 때는 적절하게 핸들링하도록 합시다.
let json = "{\"fuga\":\"aiueo\",\"foo\":999,\"user\":{\"name\":\"tenten0213\",\"age\":30}}"
let data = json.data(using: .utf8)!

do {
    let dic = try JSONSerialization.jsonObject(with: data, options: []) as? [String: Any] // ["fuga": "aiueo", "user": ["name": "tenten0213", "age": 30], "foo": 999]
    dic?["fuga"] // "aiueo"
    let user = dic?["user"] as? [String: Any] // ["name": "tenten0213", "age": 30]
    user?["name"] as? String // "tenten0213"
    user?["age"] as? Int // 30
} catch {
    print(error.localizedDescription)
}

… 실은,

좋은 웹페이지 즐겨찾기