gpt4 book ai didi

json - 使用 swift 4 从服务器加载数据

转载 作者:行者123 更新时间:2023-11-28 10:44:13 25 4
gpt4 key购买 nike

我尝试像下面这样加载用户配置文件

@IBAction func Btn_LoadDataFromDataBase(_ sender: UIButton) {       
let myurl = "site.com/profile.php"
LoadURL(url: myurl)
}

func LoadURL(url: String) {
do{
let appURL = URL(string: url)! // convert string to URL
let data = try Data(contentsOf: appURL)
//error here on this line below :
let json1 = try JSONSerialization.jsonObject(with: data ) as! [String: Any]
print(json1)
let query1 = json1["profile"] as! [String: Any]
print(query1)

label_email.text = "Email : (query1["email"]!)"

}catch{
print("error in url")
}
}

如果我通过 webbrowser 测试 json,我会得到它:

{profile :  [{"0":"999","id":"999","1":"1","email":"blabla@gmail.com","2":"1111","tel":"00122222222","3":"0" ..........

php代码:

print "{profile : ".json_encode($user_profile,JSON_UNESCAPED_UNICODE)."}";  
mysql_close($db);
?>

最佳答案

请仔细阅读JSON,只有两种不同的集合类型

  • {} 是字典([String: Any])
  • [] 是数组([Any] 但在大多数情况下 [[String: Any]])

因此 query1 的结果(我将变量名称更改为更具描述性的名称)是一个数组,您需要一个循环来打印所有元素:

 let profileData = try JSONSerialization.jsonObject(with: data ) as! [String: Any]
let profiles = profileData["profile"] as! [[String: Any]] // could be even [[String:String]]
for profile in profiles {
print("Email :", profile["email"]!")
}

我想知道为什么这么多 Web 服务的所有者发送不必要的 PHP 数组,同时包含索引和键。

并且从不从远程 URL 同步加载数据,使用异步 URLSession

关于json - 使用 swift 4 从服务器加载数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49199749/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com