ios - 在 Swift 中使用动态键解析 JSON

标签 ios json swift parsing

<分区>

我正在尝试从 url 解析 JSON 文件。这个 JSON 有一个动态的键,因为它会根据文件而变化。现在我的代码如下所示:

let json = try NSJSONSerialization.JSONObjectWithData(data!, options:.AllowFragments)


                // Parsing
                if let stations = json["observations"]!!["-10019482"] as? [[String: AnyObject]] {

                    for observation in stations {

                        if let name = observation["stationname"] as? String {

                            if let temperatuuri = observation["Temperature"] as? String {
                                if let windSpeed = observation["WindSpeedMS"] as? String {
                                    print(name, temperatuuri, windSpeed,"m/s")
                                    self.temperature.text = String(temperatuuri)
                                }
                            }

                        }

                    }
                }

“-10019482”是动态变化的部分,键名不可预测。但是,我知道它始终是“观察”中的第一个键。

如果不搜索特定的键名,我该怎么做呢?

最佳答案

因为 json["observations"] 是一个字典,你可以做这样的事情来获得它的第一个键

guard let dict = json["observations"] as? [String: AnyObject],
    let firstKey = dict.keys.first else { return }

print(firstKey) // should print the first key found in the observations dictionary

关于ios - 在 Swift 中使用动态键解析 JSON,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39464853/

相关文章:

javascript - 内容:encoded: in JSON with JQuery

ios - 如何将 View 高度调整到 iOS 中的导航栏下方?

ios - 在 Parse 中安排后台作业

ios - 如何检查和删除 TableView 中的重复值?

ios - 动态创建的方法未被调用

objective-c - 如何在 MFMailComposeViewController 中设置?

json - Grails中将JSON作为渲染标准的问题!在一个 Restful 服务中找到一个字段并进行渲染

c# - 如何在 C# 中对包含每个用户的获胜和失败数据作为键的 json 进行排序?

ios - 如何居中混合变形 SCNNode 以查看

ios - 使用 SpriteKit 触摸屏幕时不会返回正确的信息