如何解析具有字典key:value对的json数据?我正在尝试提取符号和值对

问题描述 投票:-1回答:2

如何正确解析以下json数据?我的问题是这样的:“如果让费率=数据[“费率”]为NSDictionary ...“”

json数据{“有效”:是,“时间戳记”:1579683079,“ base”:“ USD”,“费率”:{“ AED”:3.67316,“ AFN”:77.99911,“ ALL”:110.11741,“ AMD”:479.31827,“ ANG”:1.67874,“ AOA”:493.24265,“ ARS”:60.09931,“ AUD”:1.4621,“ AWG”:1.8,“ AZN”:1.7,“ BAM”:1.76505,“ BBD”:2.02357,“ BCH”:0.002865,“ BDT”:85.08427,“ BGN”:1.76479,“ BHD”:0.37699,“ BIF”:1885.9753,“ BMD”:1,“ BND”:1.35242,“ BOB”:6.9304,“ BRL”:4.21261,“ BSD”:1.00227,“ BTC”:0.000115,“ BTG”:0.088261,“ BWP”:10.81176,“ BZD”:2.02023,“ CAD”:1.30773,“ CDF”:1686.1,“ CHF”:0.97168,“ CLP”:772.78,“ CNH”:6.90252,“ CNY”:6.902,“ COP”:3356.27,“ CRC”:564.25941,“ CUC”:1“杯子”:1.00264,“ CVE”:99.50866,“ CZK”:22.66215,“ DASH”:0.009127,“ DJF”:177.729,“ DKK”:6.7405,“ DOP”:53.30887,“ DZD”:119.64988,“ EGP”:15.79329,“ EOS”:0.274725,“ ETB”:32.1114,“ ETH”:0.005928,“ EUR”:0.90214,“ FJD”:2.17126,“ GBP”:0.76604,“ GEL”:2.91,“ GHS”:5.65259,“ GIP”:0.81292,“ GMD”:51.3525,“ GNF”:9555.27375,“ GTQ”:7.7071,“ GYD”:209.68429,“ HKD”:7.7694,“ HNL”:24.68121,“ HRK”:6.71104,“ HTG”:99.33493,“ HUF”:301.62,“ IDR”:13649.18,“ ILS”:3.4535,“ INR”:71.123,“ IQD”:1196.4848,“ IRR”:42107.1,“ ISK”:124.316,“ JMD”:137.80659,“ JOD”:0.70905,“ JPY”:109.999,“ KES”:100.965,“ KGS”:69.705,“ KHR”:4096.1488,“ KMF”:443.772,“ KRW”:1163.418,“ KWD”:0.30366,“ KYD”:0.83514,“ KZT”:378.0685,“ LAK”:8900.814,“ LBP”:1515.5818,“ LKR”:181.82939,“ LRD”:193.8595,“ LSL”:14.4805,“ LTC”:0.017141,“ LYD”:1.40332,“ MAD”:9.61926,“ MDL”:17.69432,“ MKD”:55.62228,“ MMK”:1467.7654,“ MOP”:8.02145,“ MUR”:36.352,“ MVR”:15.451,“ MWK”:738.0423,“ MXN”:18.7555,“ MYR”:4.06371,“ MZN”:62.783,“ NAD”:14.4805,“ NGN”:362,“ NIO”:33.81044,“ NOK”:8.9919,“ NPR”:114.0555,“ NZD”:1.51729,“ OMR”:0.38504,“ PAB”:1.00218,“笔”:3.32437,“ PGK”:3.45956,“ PHP”:50.91805,“ PKR”:154.92965,“ PLN”:3.8211,“ PYG”:6540.987,“ QAR”:3.6412,“ RON”:4.30112,“ RSD”:106.0603,“ RUB”:61.809,“ RWF”:951.40317,“ SAR”:3.75159,“ SBD”:8.30146,“ SCR”:13.70037,“ SDG”:45.3,“ SEK”:9.521,“ SGD”:1.34949,“ SLL”:9712.985,“ SOS”:581.05,“ SRD”:7.45835,“ SVC”:8.76923,“ SZL”:14.4973,“ THB”:30.3635,“ TJS”:9.71641,“ TMT”:3.5,“ TND”:2.82215,“ TOP”:2.30007,“ TRY”:5.9395,“ TTD”:6.77686,“ TWD”:29.9565,“ TZS”:2306.015,“ UAH”:24.33666,“ UGX”:3686.1473,“美元”:1“ UYU”:37.35782,“ UZS”:9569.37545,“ VND”:23173.66,“ XAF”:591.9711,“ XAG”:0.056215,“ XAU”:0.000643,“ XCD”:2.70269,“ XLM”:16.025641,“ XOF”:591.9711,“ XRP”:4.219409,“ YER”:250.315,“ ZAR”:14.45,“ ZMW”:14.63257}}

import UIKit

struct CurrencyRate {var有效:字符串var时间戳:整数var base:字符串可变汇率:[String:Double] = [:]}

类ViewController:UIViewController {

var mySymbols:[String] = []
var myValues:[Double] = []


override func viewDidLoad() {
    super.viewDidLoad()
    // Do any additional setup after loading the view.

    let jsonUrlString = "https://currencyapi.net/api/v1/rates?key=6b171cc58787d922eb53e3684d97784d165a&base=USD"

    guard let url = URL(string: jsonUrlString) else { return }

    URLSession.shared.dataTask(with: url) { (data, response, err) in
        guard let data = data else { return }

        //let dataAsString = String(data: data, encoding: .utf8)
        if let rates = data["rates"] as? NSDictionary {
            for (key, value) in rates {
                self.mySymbols.append((key as? String)!)

                self.myValues.append((value as? Double)!)
            }
        }


    }.resume()

}

}

json swift parsing nsdictionary
2个回答
0
投票

不要使用NSDictionary-在Swift中使用Dictionary类型。另外,您有data,它根本不是字典。它是Data类型。使用应将您的数据转换为您的类型。尝试使用此代码:


0
投票

您可以为其定义类或结构。对于前:

© www.soinside.com 2019 - 2024. All rights reserved.