@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

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

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

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

Войти через центр авторизации
Похожие вопросы
Duotek Москва
от 150 000 до 190 000 руб.
Frogogo Москва
от 120 000 руб.
от 80 000 до 130 000 руб.
16 сент. 2019, в 16:51
10000 руб./за проект
16 сент. 2019, в 16:47
25000 руб./за проект
16 сент. 2019, в 16:31
5000 руб./за проект