John started his career playing for South Perth, before making his debut for Western Australian against Victoria at the WACA Ground in January 1961, where he scored a half century.

The right handed bat played 30 matches, 54 innings for WA and scored nearly 1500 runs at an average of 30.20. His career highlight was a brilliant knock of 139 not out against New South Wales in February 1964.

John featured for WA in several tour games, playing against Australian XI, New Zealand and MCC teams throughout his State career which spanned between 1960 and 1965. 

Following his time playing for WA, John continued to play for his beloved South Perth and featured in a record fourth wicket partnership of 255 not out in a match against Fremantle at Richardson Park in the 1967-68 season, a record that still stands today.