Да, int или boolean. Все "запихать" внутри строк (чтобы не плодить много if-else).
Тут вопрос необходимости самого json в таблице. Планируется ли активный поиск/фильтрация по этому столбцу и данным в нем, зачем использоваться будет, какой тип данных и бд используется, поддерживает ли она json/jsonb форматы?
Сам я не люблю сложные и большие json в бд, а если такие достаются, то либо DTO использую на стороне бека, чтобы единообразно со всем работать и внутренние касты передать на его сторону или отдельный обработчик для этого поля через аццессоры модели.