json - 如何使用 Swift 访问此 JSON 字典中的特定值?

标签 json swift api

我正在尝试从此 API (Tracker Network API) 获取总获胜次数,我已经获取了 key ,它会像这样显示 key 和值。

enter image description here

代码如下,我还可以获得获胜次数(整数)以及这些值(标题)。但是,我无法弄清楚如何在不打印所有其他数字的情况下只获得“获胜”数字。

我试过了

print(statsArray[8])
 totalWins = statsArray[8]
 //["value": 4350, "key": Wins]
 print(totalWins.values)
 //[Wins, 4350]

但它没有按我希望的方式打印。我希望它只打印出数字,这样我就可以将该数字加载到 UILabel 中。

我要问的是,如何只打印“Wins”(整数)金额而不打印其他 11 个 json 输出?我只想要其中一个数字。

let epicName = "Ninja"
let formattedName = epicName.replacingOccurrences(of: " ", with: "%20")                   
let platform = "pc"
//pc, xbl, psn


let fortniteChallengesURL3 = URL(string: "https://api.fortnitetracker.com/v1/profile/\(platform)/\(formattedName)")
if let unwrappedURL = fortniteChallengesURL3 {
var request = URLRequest(url: unwrappedURL)
request.addValue("MyKey", forHTTPHeaderField: "TRN-Api-Key")
let dataTask = URLSession.shared.dataTask(with: request) { (data, response, error) in

    if let data = data {
        do {
            let json = try JSONSerialization.jsonObject(with: data) as! [String:Any]
            //print(json)



            for (key, value) in json {


                if (key == "lifeTimeStats") {
                    if let statsArray:[ [String : Any] ] = value as? [ [String : Any] ] {

                        //accessing the 8th but I am getting the output wrong
                        /*let firstKey = Array( (value as? [ [String : Any] ])!)[8]
                        */

                        print(statsArray[8])
                        let totalWins = statsArray[8]
                        //["value": 4350, "key": Wins]
                        print(totalWins.values)
                        //[Wins, 4350]

                        for dict in statsArray {
                            for (key, value) in dict {

                                if (key == "key") {
                                    //print ( "\(firstKey.values)")

                                    print ( "keys are     \(value)")


                                }
                                /*if (key == "value") {
                                    print ( "value are     \(value)")


                                }*/
                            }
                        }

                    }


                }

            }



        } catch let error as NSError {
            print(error.localizedDescription)

            DispatchQueue.main.asyncAfter(deadline: .now() ) {

            }
        }
    }
}
dataTask.resume()
}

最佳答案

TotalWins 是一个有两个项目的字典,你可以通过它的键访问字典中的任何项目值,所以试试这个:

print(totalWins["value"])

关于json - 如何使用 Swift 访问此 JSON 字典中的特定值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52787520/

相关文章:

c# - 来自代码隐藏的 Api POST

json - 更正有关 json 正文中缺少或无效字段的 http 错误

java - 如何阻止 JsonBuilder 排列字段顺序

ios - Swift segue fatal error

swift - 禁用/启用 NSMenu 项

java - 错误 :(25, 13) 无法解析 : com. google.android.gms :play-services-auth:9. 8.0

api - 是否可以通过 Linkedin API 在状态更新中提及人员?

javascript - JS : Bug converting string to Date

javascript - 将JSON数据放入隐藏的html表单输入?

ios - swift:以编程方式创建 UILabel 固定宽度,根据文本长度垂直调整大小