试图解析JSON在斯威夫特,但得到错误

问题描述:

{ 
    "base": "EUR", 
    "date": "2016-09-23", 
    "rates": { 
     "AUD": 1.4685, 
     "BGN": 1.9558, 
     "BRL": 3.5931, 
     "CAD": 1.4625 
    } 
} 

我有这样的JSON,我试图让利率,但得到的错误,我的代码,如:试图解析JSON在斯威夫特,但得到错误

let id = json["rates"] as? String 
print("rates :" + id!) 

我是新swifty,我想分别得到每个费率,任何人都可以帮我吗?感谢

+1

请向我们展示您尝试了什么错误。 –

试试这个:

If let id = json["rates"] as? [String:AnyObject] { 
    print("rates :" + id) 
} 
+0

感谢,兄弟 现在,我可以得到 “AUD”:1.4685, “BGN”:1.9558, “BRL”:3.5931, “CAD”:1.4625, 但如何分别得到它?非常感谢 – ccy1194021

+0

对不起,你能完成它吗? –

您可以按照以下提到的代码来获取单个值。

这里的比率是字典类型,因此所有值都可以通过其相应的键值(即AUD,BGN等,如json["rates"]??["AUD"])获取,如我的代码所示。

我的代码:

let id = json["rates"] 
    print("rates : \(id)"); 

    print("AUD = \(json["rates"]??["AUD"])"); 
    print("BGN = \(json["rates"]??["BGN"])"); 
    print("BRL = \(json["rates"]??["BRL"])"); 
    print("CAD = \(json["rates"]??["CAD"])"); 

希望它能帮助。

快乐编码...

你可以像这样做太,它可以给你在你的字典里有尽可能多的利率。

if let rates = json["rates"] as? [String: AnyObject] { 

       for rate in rates { 

        let corresponsdingRate = rate.1 as? Float ?? 0.0 
        print("\(rate.0) = \(corresponsdingRate)") 
       } 
      } 
+0

@ ccy1194021试试这个。 – Aakash