Как получить читаемый JSON после NSJSONSerialization.dataWithJSONObject в Swift
У меня есть код, подобный этому (я упростил его здесь):
let text = "abc" let iosVersion = UIDevice.currentDevice().systemVersion
let message = ["Text" : text, "IosVersion" : iosVersion]
if NSJSONSerialization.isValidJSONObject(message){
let url = NSURL(string: "http://localhost:3000/api/someapi")
var request = NSMutableURLRequest(URL: url!)
var data = NSJSONSerialization.dataWithJSONObject(message, options: nil, error: nil)
println(data)
request.addValue("application/json", forHTTPHeaderField: "Content-Type")
request.HTTPMethod = "POST"
request.HTTPBody = data
let task = session.dataTaskWithRequest(request, completionHandler: nil)
task.resume()
Это отлично работает, но я хотел бы видеть JSON в читаемом формате, чтобы я мог скопировать/вставить его в скрипач/завиток, чтобы помочь диагностировать мой API на сервере. Строка println(data)
выше дает мне шестнадцатеричные данные. Любые идеи?
Ответы
Ответ 1
Создайте String
из Data
и это хорошая практика для обработки ошибки
do {
let data = try JSONSerialization.data(withJSONObject: message)
let dataString = String(data: data, encoding: .utf8)!
print(dataString)
// do other stuff on success
} catch {
print("JSON serialization failed: ", error)
}