■はじめに
APIなどを使用する上で、JSONのデータをよく利用する。
ここでは、このJSON型のデータをSwiftで利用しやすいようにNSDictionary型へ変換する方法を記載する。
◾️JSONデータをString型からNSDictionary型へ変換
APIのレスポンスデータをString型で取得した後を想定して、NSDictionary型へ変換する。
以下が変換するソースコードです。
// 変換するString型のJSONデータ
let jsonString = "{\"name\":\"kuro\"}"
if let data = jsonString.data(using: String.Encoding(rawValue: String.Encoding.utf8.rawValue)) {
do {
if let targetDict = try JSONSerialization.jsonObject(with: data, options: []) as? [String:AnyObject] as NSDictionary? {
print(targetDict["name"])
}
} catch let error as NSError {
print(error)
}
}
◾️JSONデータをNSDictionary型からString型へ変換
APIへデータを渡すことを想定して、String型からNSDictionary型へ変換する。
以下が変換するソースコードです。
// JSON 化したいデータを Dictionary で作成
let dict: [String: String] = ["name": "kuro"]
do {
// Dict -> JSON
let jsonData = try JSONSerialization.data(withJSONObject: dict, options: [])
let json = NSString(data: jsonData, encoding: String.Encoding.utf8.rawValue)! as String
} catch {
print("Error!: \(error)")
}