Уроженец Бритон-Ферри[англ.], Джон начал футбольную карьеру в местном клубе «Бритон Ферри Атлетик». В 1927 году стал игроком «Суонси Таун». На тот момент он ещё был полевым игроком, обычно выступая на позиции защитника, однако, по свидетельствам очевидцев, играл на этой позиции «не очень удачно»[3]. Затем начал играть на позиции хавбека, где получил репутацию «решительного борца с хорошим ударом»[3]. В мае 1928 года покинул «Суонси», не сыграв ни одного матча в основном составе.
В 1928 году стал игроком английского клуба «Уолсолл», поначалу выступая за резервную команду на позиции хавбека. Но после ухода из команды Фреда Биддлстоуна[англ.], который перешёл в «Астон Виллу» в январе 1930 года, и травмы второго вратаря «Уолсолла» Джон начал привлекаться к тренировкам в роли вратаря. Он хорошо проявил себя на тренировках и вскоре был назначен основным вратарём «Уолсолла»[3]. Провёл в команде четыре сезона, сыграв 93 матча в лиге и Кубке Англии.
В апреле 1932 года перешёл в «Сток Сити». В сезоне 1932/33, сыграв в 40 матчах лиги и 2 кубковых матчах, помог «гончарам» выиграть Второй дивизион[2]. Местные газеты называли его выступления на позиции вратаря «просто блестящими»[2]. Однако уже в следующем сезоне, который «Сток Сити» проводил в Первом дивизионе, Джон выступал не очень удачно, и летом 1934 года покинул команду[2].
Проведя шесть месяцев в составе «Престон Норт Энд» и не сыграв за клуб ни одного официального матча, в декабре 1934 года Джон перешёл в «Шеффилд Юнайтед» за 1250 фунтов стерлингов. За два сезона в составе «клинков» сыграл 29 матчей в лиге и ещё 2 матча в Кубке Англии[4].
В июне 1936 года перешёл в «Манчестер Юнайтед» за 600 фунтов стерлингов[1]. Дебютировал за «Юнайтед» в первом матче сезона 1936/37, игре Первого дивизиона против «Вулверхэмптон Уондерерс» на стадионе «Олд Траффорд» 29 августа 1936 года[5]. Был основным вратарём команды в начале того сезона, сыграв 15 стартовых матчей в лиге. Однако после двух неудачных игр в ноябре, в которых он пропустил 11 мячей (14 ноября в матче с «Гримсби Таун» «Юнайтед» проиграл со счётом 2:6, а 21 ноября в матче с «Ливерпулем» проиграл со счётом 2:5) Джон потерял место в основном составе, а позицию вратаря клуба занял североирландец Томми Брин.
В том же 1937 году перешёл в другой валлийский клуб «Суонси Таун», выступавший во Втором дивизионе Футбольной лиги. В 1938 году помог команде дойти до финала Кубка Уэльса, в котором «Суонси» проиграл английскому «Шрусбери Таун» в переигровке[6]. Джон провёл за «Суонси Таун» 41 матч в рамках официальных английских турниров, после чего соревнования были приостановлены в связи с началом войны. В ноябре 1939 года Рой Джон официально завершил карьеру, после чего стал управляющим отеля[3].
В военное время в качестве гостевого игрока сыграл за несколько клубов с северо-запада Англии, включая «Саутпорт». В сентябре 1942 года сыграл за Уэльс в матче против Королевских ВВС[3].