2016-09-13 15 views
2

URLからJSONファイルを解析しようとしています。このJSONには動的なキーがあり、ファイルごとに変更されます。今私のコードは次のようになります。Swiftの動的キーによる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"]以来

+0

だあなたはそれが最初の鍵であることを確信している場合は、[「観測」]、JSONのように[0] – Sujit

答えて

0

は、あなたが取得するために、このような何かを行うことができ辞書でそれが最初のキー

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 
+0

ありがとうございました!これはそれを解決した – Myreaux

+0

こんにちは再びdonnywals!私はちょうど私のプロジェクトをこのソリューションを壊したSwift 3にアップデートしました。今度は、あなたが与えたコードの最初の行に不平を言っています。私はこれを解決しようとしましたが、何も見つかりませんでした。あなたは可能な解決策を知っていますか? – Myreaux

+0

まずJSONを辞書にキャストする必要があります。 'let jsonDict = json as? [String:AnyObject] 'を取り出してそこから取り出します – donnywals

関連する問題