如何从模型数据Swift创建JSON字符串? [关闭]

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

如何从其他模型数据创建JSON字符串?

我希望从数据创建json字符串,但不成功。

结果我进入数组,然后使用For循环传递给AppointmentDownloadModel进行json创建。

如何传递数据AppointmentDownloadModel并创建JSON字符串。

数据接收模型:

struct ResponseData: Codable {

    let appointments : [Appointment]?
}


let decoder = JSONDecoder()
let response = try decoder.decode(ResponseData.self, from: result! as! Data)
self.appData = response.appointments
for everyApp in self.appData! {

}

想要将响应数据传递给该模型:

struct AppointmentDownloadModel: Codable{
    var appointmentModel: Appointment
    var progress: Int = 0
    var failedList: [Int: String] = [:]
    var isFinished: Bool = false
}

最终需要创建此字符串:

{"appointmentModel":{"appointmentHour":"12:00","backgroundColorDark":"#556f7b","backgroundColorLight":"#cfd8dc","controlHour":"","date":"2020-06-01T12:00:00","heatingType":"b","id":15469622,"isProjectManual":false,"projectFirmName":"Miray Doğalgaz (Erhan Şahin)","projectName":"KÖKSAL ÇOŞKUN-+D1+D3+D5","projectType":"k","subTitle":"18137 902179436-18137-408352"},"failedResourceList":[],"isFinished":false,"progress":0}
ios json swift struct codable
1个回答
0
投票

以下内容解码了json示例并创建了新的AppointmentDownloadModel对象,然后将其编码为Data(并转换为字符串)

var models = [AppointmentDownloadModel]()

let decoder = JSONDecoder()
do {
    let response = try decoder.decode(ResponseData.self, from: data)
    if let appointments = response.appointments {
        models = appointments.map { AppointmentDownloadModel(appointmentModel: $0)}
    }
} catch {
    print(error)
}

let encoder = JSONEncoder()
do {
    let modelData = try encoder.encode(models)
    let jsonString = String(data: modelData, encoding: .utf8)
    print(jsonString)
} catch {
    print(error)
}
© www.soinside.com 2019 - 2024. All rights reserved.