Ваш класс, вероятно, должен быть структурой и должен соответствовать Encodable
, а не Decodable
, если вы планируете кодировать и декодировать, вы можете использовать протокол Codable
, который охватывает оба случая.
Один разВы сделали это, просто используйте JSONEncoder
для преобразования его в данные JSON, а затем вы можете распечатать его, используя String(bytes: Sequence, encoding: String.Encoding)
struct QuizQu: Codable {
var ques_id: String?
var their_answer: String?
}
let questions = [
QuizQu(ques_id: "1", their_answer: "2"),
QuizQu(ques_id: "2", their_answer: "2"),
QuizQu(ques_id: "3", their_answer: "1"),
QuizQu(ques_id: "4", their_answer: "4"),
QuizQu(ques_id: "5", their_answer: "3")
]
do {
let encoded = try JSONEncoder().encode(questions)
print(String(bytes: encoded, encoding: .utf8))
} catch {
print(error)
}
Вывод:
Необязательно ("[{\ "ques_id \": \ "1 \", \ "their_answer \": \ "2 \"}, {\ "ques_id \": \ "2 \", \ "their_answer \": \ "2 \"}, {\ "ques_id \": \ "3 \", \ "their_answer \": \ "1 \"}, {\ "ques_id \": \ "4 \", \ "their_answer \": \ "4\ "}, {\" ques_id \ ": \" 5 \ ", \" its_answer \ ": \" 3 \ "}]")
Примечание: выходная строка экранирована, следовательнообратные слеши