当要求在swift中检索数据/内容时,我发现了两种方法:
1
override func viewDidLoad() {
super.viewDidLoad()
if let url = NSURL(string: "https://freegeoip.net/json/") {
do {
let contents = try NSString(contentsOfURL: url, usedEncoding: nil)
print(contents)
}catch{
print("Error accessing content!")
}
} else{
print("Bad URL!")
}
}
2
override func viewDidLoad() {
super.viewDidLoad()
let url = NSURL(string: "https://freegeoip.net/json/")
let task = NSURLSession.sharedSession().dataTaskWithURL(url!) { (data, response, error) in
if let content = data{
do {
let jsonResult = try NSJSONSerialization.JSONObjectWithData(content, options: NSJSONReadingOptions.MutableContainers)
print(jsonResult)
} catch{
print("JSON serialization failed")
}
}
}
task.resume()
}
哪一个在技术上是正确/最好的方式,为什么?
答案 0 :(得分:2)
Foundation
提供NSJSONSerialization
来使用JSON。答案 1 :(得分:1)
答案 2 :(得分:0)
这取决于你的json数据。如果您的json数据只包含单行或单个对象,则可以使用第一个。因为它将您的数据存储为字符串。另一方面,如果您的json数据包含大量数据,如数组中的数组,字典中的数组,数组中的字典,则必须使用第二个,因为您必须进一步处理以获取数组或字典的子项。