John Shields (1 February 1882 – 11 May 1960) was an English cricketer who played first-class cricket for Leicestershire between 1906 and 1923. He was born in Loudoun, Ayrshire, Scotland and died at Isley Walton, Kegworth, Leicestershire. Shields played as a lower-order batsman and wicketkeeper, and as an amateur, he served as official captain of Leicestershire between 1911 and 1913, as well as captaining the side on other occasions.