【发布时间】:2018-01-10 00:14:34
【问题描述】:
我有一个问题,我得到了一个 Json。数据来自字典。
这是一个示例 json:
Receivedtext: {
"x": "pricef",
"b": "usd",
"ds": [
"tpr",
"avgp",
"mcap",
"ppc7D",
"ppc12h",
"ppc4h",
"ppc24h"
],
"data": [
[
"ADA/USD",
"0.819",
"21.23B",
"6.09",
"-5.45",
"-5.36",
"-10"
],
[
"AVT/USD",
"5.968",
"35.81M",
"24.33",
"-4.51",
"-3.3",
"6.65"
],
[
"BAT/USD",
"0.946",
"unknown",
null,
null,
null,
null
], [
"FUN/USD",
"0.000",
"0.00",
0,
0,
0,
0
] ]
}
通常json应该都是String。我可以处理 nill/null 但我不知道如何处理它的 Int/Double。
如果它是 Int/Double 我想用“未知”替换该值。
这是我目前的代码:
struct JsonMaintableWebsocket {
let tpr: String?
let avgp: String?
let mcap: String?
let ppc7D: String?
let ppc12h: String?
let ppc4h: String?
let ppc24h: String?
init(json: [String?]) {
self.tpr = json[0]
self.avgp = json[1]
self.mcap = json[2]
self.ppc7D = json[3]
self.ppc12h = json[4]
self.ppc4h = json[5]
self.ppc24h = json[6]
}
static func fetchJsonWebsocketMaintable(json: Data) -> [JsonMaintableWebsocket] {
var jsonWebsocket: [JsonMaintableWebsocket] = []
do {
let jsonData = try JSONSerialization.jsonObject(with: json, options: []) as? [String: Any?]
if let data = jsonData!["data"] as? [[String?]] {
for d in data {
jsonWebsocket.append(JsonMaintableWebsocket(json: d))
}
}
}
catch let error{
print(error.localizedDescription)
}
return jsonWebsocket
}
}
非常感谢!
【问题讨论】:
-
tpr?avgp?你希望别人如何阅读你的代码?/ -
请尝试改进您的问题:stackoverflow.com/help/mcve
-
抱歉,怎样才能更好地阅读?这些是我想从 json 中获取的变量
标签: ios arrays json swift string