gpt4 book ai didi

ios - 使用Swift将一些Class类型的Arraylist转换成JSON格式

转载 作者:行者123 更新时间:2023-11-29 00:52:41 25 4
gpt4 key购买 nike

我想使用 Alamofire 访问 api,其中我必须将参数传递为:

"reminder":
[
{
"isAlarmOn": "true",
"time": "06:29 PM"
},
{
"isAlarmOn": "true",
"time": "06:30 AM"
}
]

为了实现这一点,我创建了一个数组作为

var reminderArray : [AlarmRequestModel] = [AlarmRequestModel]()

AlarmRequestModel 就像 ,

AlarmRequestModel.swift

import Foundation
class AlarmRequestModel {
var time : String = "12:00 PM"

init(time : String){
if !time.isEmpty{
self.time = time
}

}
}

并填充 reminderArray 为

func setArray() {
reminderArray.insert(AlarmRequestModel(time: "5:00 PM"), atIndex: 0)
reminderArray.insert(AlarmRequestModel(time: "6:00 PM"), atIndex: 1)
reminderArray.insert(AlarmRequestModel(time: "7:00 PM"), atIndex: 2)
reminderArray.insert(AlarmRequestModel(time: "8:00 PM"), atIndex: 3)
}

在点击 Api 时,我将参数声明为

 func hitApi()
{
let parameters : [String:AnyObject] = [
"reminder" : reminderArray.description,
]

print("parmeters : \(parameters)")
}

但我没有得到预期的输出,输出就像 ->

 parmeters :["reminder": [My_Swaasth.AlarmRequestModel,My_Swaasth.AlarmRequestModel,My_Swaasth.AlarmRequestModel,My_Swaasth.AlarmRequestModel]]

请任何人提出建议,我需要做哪些更改才能获得所需的输出。

最佳答案

有一个名为 CustomStringConvertible 的协议(protocol),它具有

var description: String property

但这不会产生所需的输出。所以我宁愿为 AlarmRequestModel 实现一个参数值

extension AlarmRequestModel {
var parameterValue: Dictionary<String, String> {
return ["isAlarmOn": "true", "time": self.time]
}
}

并像这样使用

reminderArray.map() { reminder in return reminder.parameterValue }

这里:

    let parameters  : [String:AnyObject] = [
"reminder" : reminderArray.map() { reminder in return reminder.parameterValue },
]

关于ios - 使用Swift将一些Class类型的Arraylist转换成JSON格式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37943049/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com