@redcircle

Как сделать JSON из Encodable произвольного класса?

Есть функция в Swift 4:
func encode(item: Encodable) -> Data {
        return JSONEncoder().encode(item)
}


Но компилятор выдаёт ошибку
Protocol type 'Encodable' cannot conform to 'Encodable' because only concrete types can conform to protocols

Как реализовать подобный функционал, не используя конкретные классы?
  • Вопрос задан
  • 59 просмотров
Пригласить эксперта
Ответы на вопрос 1
@tapoton
Да, в Encoder нет метода, который бы принимал абстрактный Encodable, ему нужен конкретный тип. Добиться этого в силу своей реализации помогут дженерики.

func encode<T: Encodable>(_ item: T) throws -> Data {
    return try JSONEncoder().encode(item)
}
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы
от 150 000 до 300 000 ₽
ПИК Digital Екатеринбург
от 120 000 до 150 000 ₽
Postuf Москва
от 150 000 до 350 000 ₽
04 апр. 2020, в 23:07
30000 руб./за проект
04 апр. 2020, в 23:05
100000 руб./за проект
04 апр. 2020, в 22:57
2000 руб./за проект