需要JSON解析帮助吗
我是一个编程和Swift的初学者。我的应用程序应该具备的功能之一是纽约市当前温度的标签。问题是我不知道我的代码是否在正确的路径上。我尝试了很多视频和文章中的东西,但似乎没有任何效果。我相信答案很简单。谢谢你的帮助! 我使用黑暗的api。这是我当前的代码需要JSON解析帮助吗,json,swift,url,weather,Json,Swift,Url,Weather,我是一个编程和Swift的初学者。我的应用程序应该具备的功能之一是纽约市当前温度的标签。问题是我不知道我的代码是否在正确的路径上。我尝试了很多视频和文章中的东西,但似乎没有任何效果。我相信答案很简单。谢谢你的帮助! 我使用黑暗的api。这是我当前的代码 import UIKit struct MyGitHub: Codable { let temperature: Int private enum CodingKeys: String, CodingKey { cas
import UIKit
struct MyGitHub: Codable {
let temperature: Int
private enum CodingKeys: String, CodingKey {
case temperature
}
}
class ViewController: UIViewController {
override func viewDidLoad() {
super.viewDidLoad()
// Do any additional setup after loading the view, typically from a nib.
guard let gitUrl = URL(string: "here is my darksky api") else { return }
URLSession.shared.dataTask(with: gitUrl) { (data, response, error) in
guard let data = data else { return }
do {
let decoder = JSONDecoder()
let gitData = try decoder.decode(MyGitHub.self, from: data)
print (gitData.temperature)
} catch let err {
print ("Err", err)
}
} .resume()
}
override func didReceiveMemoryWarning() {
super.didReceiveMemoryWarning()
// Dispose of any resources that can be recreated.
}
}
你可以试试这个
Alamofire.request(urlStr, method: .get, parameters:nil, encoding: JSONEncoding.default).responseJSON { response in
if let json = response.result.value as? [String:Any] {
if let main = json["currently"] as? [String:Any] {
if let temp = main["temperature"] as? NSNumber
{
// set lbl here
print(temp)
}
}
}
}
或
与
根对象需要一个伞形结构,关键点温度的值是Double,而不是Int 如果您也发布JSON响应,答案可能非常简单。
struct Currently : Codable {
var currently:InnerItem
}
struct InnerItem : Codable {
var temperature:Double
}
guard let gitUrl = URL(string:urlStr) else { return }
URLSession.shared.dataTask(with: gitUrl) { (data, response, error) in
guard let data = data else { return }
do {
let decoder = JSONDecoder()
let gitData = try decoder.decode(Currently.self, from: data)
print ("sdhjsdjhjhdshjshjsjhddhsj" , gitData.currently.temperature)
} catch let err {
print ("Err", err)
}
} .resume()
struct Root: Decodable {
let currently : MyGitHub
}
struct MyGitHub: Decodable {
let temperature: Double
}
...
let gitData = try decoder.decode(Root.self, from: data)
print(gitData.currently.temperature)