在Xcode中按JSON显示数据库中的数据
类ViewController:UIViewController{ @IBOutlet变量fname:UILabel在Xcode中按JSON显示数据库中的数据,json,swift,database,xcode,label,Json,Swift,Database,Xcode,Label,类ViewController:UIViewController{ @IBOutlet变量fname:UILabel struct Class: Codable { let FName: String let LName: String enum CodingKeys: String, CodingKey { case FName = "first_name" case LName = "last_name" } } overr
struct Class: Codable {
let FName: String
let LName: String
enum CodingKeys: String, CodingKey {
case FName = "first_name"
case LName = "last_name"
}
}
override func viewDidLoad() {
super.viewDidLoad()
let url = URL(string: "https://domain(^_^).com/users.php")
URLSession.shared.dataTask(with: url!, completionHandler: {(data, response, error) in
guard let data = data, error == nil else { print(error!); return }
let decoder = JSONDecoder()
let classes = try! decoder.decode([Class].self, from: data)
for myClass in classes {
print(myClass.FName)
print(myClass.LName)
}
DispatchQueue.main.async {
self.fname.text = "I don't know what to wirte here to change the label to the data which I get fron database"
}
}
).resume()
}
}
最后,我只是不知道如何将标签文本重写为从数据库中获取的数据。我试图在TableView上显示数据,但我做不到,我唯一能得到帮助的方法就是在这里,youtube帮不上我的忙。试试这个
for myClass in classes {
print(myClass.FName)
print(myClass.LName)
DispatchQueue.main.async {
self.fname.text = myClass.FName
self.lname.text = myClass.LName // In case you have second label
}
}
您有一个
Classe
对象数组。你想为你的标签展示什么?从哪里开始?只有在确定可以将数据放入可编码模型的情况下,才应该使用JSONDecoder
读取JSON数据。换句话说,使用JSONSerialization
@Larme读取数据会更容易。我正试图从数据库中获取数据,我做到了。我从数据库中获取名字和姓氏,并希望将其显示在显示器上。只是根据您的代码,您应该有3,4,nClass
对象,因为Class
是一个数组。因此,如果你想放第一个,如果让fName=classes.first.fName{self.fName.text=fName},如果你想放第二个,用classes.first.fName
替换classes[1].fName
,等等。你太棒了,兄弟,现在可以了。非常感谢:)@我在等你的回答。我已经试过了,但没用。