Я пытаюсь опубликовать http-запрос, и мне приходится иметь дело с вложенным json.
Я пытался отправить свой параметр как
[[String: Any]]
и
[JSON]
, но я получаю ошибку в обеих ситуациях.
этомой код:
var accountTitlesForNewProject = [JSON]()
for indexCounter in 0 ..< self.accountTitles.count {
let _accountTitle = self.accountTitles[indexCounter]
if !isChecked[indexCounter] {
continue
}
var _accountTitleJSON = JSON()
_accountTitleJSON["name"] = _accountTitle["name"]
_accountTitleJSON["description"] = _accountTitle["description"]
var _codes = [JSON]()
for (_, _code) in _accountTitle["accounting_codes"] {
let _codeJSON = JSON(dictionaryLiteral: ("type", _code["type"]), ("code", _code["code"]), ("level", _code["level"]))
_codes.append(_codeJSON)
}
_accountTitleJSON["accounting_codes"] = JSON(_codes)
accountTitlesForNewProject.append(_accountTitleJSON)
}
print(accountTitlesForNewProject)
self.addProject(projectName: projectName, stateId: stateId, cityId: cityId, accountTitles: accountTitlesForNewProject, successHandler: successHandler)
это результат печати:
[{"accounting_codes" : [
{"level" : 1,
"type" : 1,
"code" : "694"
},
{"level" : 2,
"type" : 1,
"code" : "312"
},
{"level" : 3,
"type" : 1,
"code" : "336"
}],
"name" : "بنفشه صفوی",
"description" : "لابد حرف و سخنی و خندهای و رفت. کنهای بود. درست یک پیرمرد. یک ساعت به ماهی سه چهار هفته بیشتر دوام نکرد.."
},
{"accounting_codes" : [
{"level" : 1,
"type" : 1,
"code" : "977"
},
{"level" : 2,
"type" : 1,
"code" : "568"
},
{"level" : 3,
"type" : 1,
"code" : "178"
}],
"name" : "آزاده میرزاده",
"description" : "و دیگه خسته شدهام. دلم میخواد قضیه به همین سادگی تمام میشود. و بعد چند سال سابقه دارد و چند نفری از اولیای."
}]
и это функция addProject, где возникает проблема:
private func addProject(projectName: String, stateId: Int, cityId: Int, accountTitles: [JSON], successHandler: @escaping (String) -> ()) {
let authenticator: TGAccessTokenProvider = TGOpenAuthentication.getTGOpenAuthenticator()
authenticator.getAccessToken(successHandler: { (_accessToken) in
self.projectProvider.request(.store(accessToken: _accessToken, projectName: projectName, stateId: stateId, cityId: cityId, accountTitles: accountTitles), completion: { ...
}
Я получил ошибку, когдавыполняется self.projectProvider.request, и это сообщение об ошибке:
«Завершение приложения из-за необработанного исключения« NSInvalidArgumentException », причина:« Неверный тип в записи JSON (_SwiftValue) »»
проблема