【问题标题】:swift 4 json array structswift 4 json数组结构
【发布时间】:2017-11-14 15:21:21
【问题描述】:

当您拥有这些数据时,该结构的外观如何?是否必须在结构中添加成功、代码和消息?

"{"Entries":[{"Utility":"Electricity","ConsumptionDateTime":"2017-11-06","Consumption":0.6268,"Amount":0.94999999999999984},{"Utility":" Electricity","ConsumptionDateTime":"2017-11-07","Consumption":55.1076,"Amount":100.88000000000001},{"Utility":"Electricity","ConsumptionDateTime":"2017-11-08","消耗":54.2914,"金额":99.659999999999982},{"公用事业":"电","ConsumptionDateTime":"2017-11-09","消耗":54.3062,"金额":99.809999999999974},{"公用事业" :"电力","ConsumptionDateTime":"2017-11-10","Consumption":54.3584,"Amount":99.330000000000013},{"Utility":"Electricity","ConsumptionDateTime":"2017-11-11" ,"消费":53.6868,"金额":98.570000000000022},{"公用事业":"电力","ConsumptionDateTime":"2017-11-12","消费":38.5152,"金额":66.65}],"成功":true,"代码":0,"消息":""}"

struct consumptionResponse: Decodable {
    let Entries: String?
    let consumption: [consumptionEntrys]
    let Success: String?
    let Code: Int?
    let message: String?
}

struct consumptionEntrys: Decodable {

    // MARK: - Properties
    var consumptionUtility: String?
    var consumptionDateTime: String?
    let consumptionReading: Double?
    let consumptionAmount: Double?
 }

【问题讨论】:

  • 输入 jsonprettyprint.com 之类的内容,然后从那里开始。
  • let Entries: [consumptionEntrys] 对于consumptionResponse 中的前两个变量是正确的。

标签: arrays json swift


【解决方案1】:

正如 luk2302 所说,您可以获取 Pretty Print JSON,然后从那里形成您的结构。

Pretty Printed JSON 的编辑版本产生以下内容:

{
"Entries": [
{
"Utility": "Electricity",
"ConsumptionDateTime": "2017-11-06",
"Consumption": 0.6268,
"Amount": 0.95
},
{
"Utility": "Electricity",
"ConsumptionDateTime": "2017-11-07",
"Consumption": 55.1076,
"Amount": 100.88
],
"Success": true,
"Code": 0,
"Message": ""
}

因此一个可行的模型应该是:

struct Response: Decodable{

let Entries: [Entries]?
let Success: Bool?
let Code: Int?
let Message: String?

}

struct Entries: Decodable{

let Utility: String?
let ConsumptionDateTime: String?
let Consumption: Double?
let Amount: Double?

}

您当然需要检查变量是否正确,例如是关键:ConsumptionDateTime 是一个字符串吗?

无论如何,希望这会帮助您入门。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-11-27
    • 2019-05-06
    • 2018-09-01
    • 2021-08-04
    相关资源
    最近更新 更多