【发布时间】:2017-04-12 15:51:56
【问题描述】:
我是一个快速编程的初学者,我需要来自 JSON 的值,它看起来像这样......我不明白这个 JSON..:-(:
{
"nextUpdate":300,
"subscriptions":["speedon","roamLikeHome","tns"],
"title":"",
"hasOffers":true,
"passName":"Ihr Telekom Datentarif",
"passStage":1,
"validityPeriod":2,
"initialVolume":6547308544,
"initialVolumeStr":"6,09 GB",
"usedVolume":2550134551,
"usedPercentage":39,
"usedVolumeStr":"2,37 GB",
"usedAt":1487480985000,
"remainingSeconds":833168,
"remainingTimeStr":"9 Tage 15 Std.",
"downSpeed":-1,
"downSpeedStr":"Max",
"upSpeed":-1,
"upSpeedStr":"Max",
"passType":103
}
我会将 usedVolume 和 usedPercentage 获取到一个变量中!
我的代码:
var volume: [String] = []
var percent: [String] = []
override func viewDidLoad() {
super.viewDidLoad()
let url=URL(string:"http://pass.telekom.de/api/service/generic/v1/status/.json")
do {
let allData = try Data(contentsOf: url!)
let data = try JSONSerialization.jsonObject(with: allData, options: JSONSerialization.ReadingOptions.allowFragments) as! [String : AnyObject]
if let arrJSON = data["??"] {........
我如何在可变体积中获得它,百分比..
感谢您的帮助..!
【问题讨论】:
-
data是一个普通的旧 Swift 字典。像使用任何其他字典一样使用它。你知道你想要的值是什么键。只需访问这些密钥。 -
您可以使用一个流行的库来帮助您处理 JSON,称为 SwiftyJSON
-
与您的直接问题无关,您真的,真的不应该像现在这样访问远程数据。由于远程数据访问,您的应用程序将被阻止。有适当的方法可以访问远程数据,而您正在做的不是它。但这是您接下来可以解决的另一个问题。
-
您应该在 Swift 3.x 中转换为
as? [String : Any]而不是as? [String : AnyObject] -
@Heisenberg 你能试试我的回答吗?如果您有任何问题,请告诉我