试图将 JSON 解析为 swift3 并显示到 UILabel
Posted
技术标签:
【中文标题】试图将 JSON 解析为 swift3 并显示到 UILabel【英文标题】:Trying to parse JSON into swift3 and display into UILabel 【发布时间】:2017-05-30 05:38:42 【问题描述】:如何将这些数据解析成swift3并显示到UILabel中。
请有人帮我解决这个问题,因为我是 swift 新手,正在做我的第一个项目。提前致谢。
“Driver_Details” :[
“Staff_ID”:2,
“Staff_Name”:”Pratyush”,
“Student_ID”:1
“Route_Number”:”1A”
“Route_Name”:”Guindy”
“Stop_Name”:”Velachery”
“Distance_from_School”:3,
]
【问题讨论】:
你能提供你的 swift 部分的代码吗? 我还没有尝试,因为我不知道从哪里开始,请帮助我:( 那么,请先查看教程。喜欢(直接关于 JSON/Swift)roadfiresoftware.com/2016/12/how-to-parse-json-with-swift-3 或(一般)***.com/documentation/swift/topics @FieryCat 好的,谢谢 :) 【参考方案1】:试试这个。如果您将其作为本地文件从 Documents 文件夹中作为 DriverDetails.json 打开,您可以尝试以下操作:
if let path = Bundle.main.path(forResource: "DriverDetails", ofType: "json")
do
let jsonData = try Data(contentsOf: URL(fileURLWithPath: path), options: .mappedIfSafe)
if let json = try JSONSerialization.jsonObject(with: jsonData, options: .mutableContainers) as? [String: Any]
if let jsonDriverDetails = json["Driver_Details"] as? [[String: Any]]
// Here you have an array of DriverDetails Dictionaries
for jsonDriverDetail in jsonDriverDetails
// Iterating through each Dictionary you can access the values using the key
staffNameLabel.text = jsonDriverDetails["Staff_Name"] as? String
catch print(error.localizedDescription)
【讨论】:
嘿,谢谢伙计,但这些数据来自 URL,我应该在你的代码中更改什么? 你在使用 AlamoFire 吗? 不,它非常简单的应用程序和数据来自服务器。 尝试将第 3 行替换为:let jsonData = try Data(contentsOf: jsonURL, options: .mappedIfSafe)
其中jsonURL
具有您服务器的 URL
代码给了我错误:无法在此行使用 'String' 类型的索引下标 '[[String : Any]]' 类型的值:staffNameLabel.text = jsonDriverDetails["Staff_Name “] 作为?字符串以上是关于试图将 JSON 解析为 swift3 并显示到 UILabel的主要内容,如果未能解决你的问题,请参考以下文章
Swift3 - UIImageView 没有从解析的 JSON 数据中出现
Swift 3,如何先解析并在下一个 TableViewController 上显示