John Robert Barnes (20 May 1905 – 6 October 1999) was an Australian rules footballer who played with South Melbourne in the Victorian Football League (VFL) during the 1920s. Born in Williamstown, Barnes was used mostly as a forward and kicked 34 goals in 1928, including a bag of six against Geelong at Lake Oval. His son Ken played at South Melbourne in the 1960s.