这是我要在报告中使用其变量的结构。
struct report : Codable {
var question : String
var AnswersChosen : [String] = [String]()
var userCount : Int
var hintCount : Int
我关于用户输入的报告,其中的变量是用户当前所处的问题,他们选择的选项以及每个问题选择错误答案的次数
var currentReport = [report]()
currentReport.append(report(question:questions[currentQuestion - 1 ],AnswersChosen:answerChosen, userCount:ActionCount, hintCount:hintButtonCount ))
print(currentReport)
该代码的输出可以如下所示:
在我的代码中,我正在使用Alamofire将JSON文件发送到Laravel。我希望能够通过Alamofire发送currentReport,该报告将用户输入记录为JSON文件。因此,如何将数组转换为JSON文件?谢谢你的帮助
您可以将数组编码为Data
使用的实例JSONEncoder
:
let encoder = JSONEncoder()
do {
let data = try encoder.encode(currentReport)
} catch {
print(error)
}
然后Data
使用write(to:options:)
函数将其保存到文件中,如下所示:
do {
if var url = FileManager.default.urls(for: .documentDirectory, in: .userDomainMask).first {
url.appendPathComponent("reports.json")
try data.write(to: url)
}
} catch {
print(error)
}
完整的代码可能如下所示:
do {
let reports = [Report(question: "", userCount: 1, hintCount: 1)]
let data = try JSONEncoder().encode(reports)
if var url = FileManager.default.urls(for: .documentDirectory, in: .userDomainMask).first {
url.appendPathComponent("reports.json")
try data.write(to: url)
}
} catch {
print(error)
}
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句