Nicknamed "Honest John", Anderson played for six seasons in the National League from 1894 to 1899 and then in the American League from 1900 to 1908. He first appeared in the National League in 1894, when he signed with the Brooklyn Grooms. He spent the next three full seasons with Brooklyn and was primarily used as an outfielder, and batted over.300 in both 1896 and 1897.
During the 1898 season, he was sold to the Washington Senators, only to be sold back to Brooklyn four months later.
Nevertheless, he managed to have one of his best seasons, leading the National League with 22 triples and also leading the league in slugging percentage and extra-base hits. Anderson stayed in Brooklyn for the 1899 before being purchased by the Milwaukee Brewers of the newly formed American League.
Anderson was one of the league"s best hitters in the Alabama"s first year as a Major League in 1901. (In 1900, the American League was still considered a minor league) As the Brewers" first baseman, he finished second in the league in base hits and doubles, trailing only Nap Lajoie in both categories, ranked third in runs batted in behind Lajoie and Buck Freeman, and was sixth in the league with a.330 average.
He stayed with the franchise when it relocated to Saint Louis in 1902 to become the Browns.
He played two seasons in Saint Louis and recorded virtually identical.284 batting averages in those years. On September 24, 1903, Anderson tried to steal second base when the base was already occupied. This particular mistake was often referred to as a "John Anderson play" in the early part of the century
Anderson was dealt to the New York Highlanders before the 1904 season in exchange for Jack O"Connor.
He played one full season in New York and batted.278 with the club
He started the 1905 season in New York but was waived after a slow start. The Washington Senators (officially a different franchise from the team he played for in 1898) claimed him off of waivers, and he recovered to bat.279 on the season, good enough for ninth in the Alabama in the midst of the dead-ball era.
He remained in Washington for the next two seasons. In 1906, Anderson tied for the American League lead in stolen bases with Elmer Flick.
He left Washington after his contract was purchased by the Chicago White Sox for the 1908 season.
He played for one season with the Pale Hose to end his career in the Major Leagues. Anderson retired with a.290 career average, 49 home runs, and 976 runs batted in. He also finished his career with 124 triples, currently tying him for 90th place all-time in that category.
He died at the age of 74 in Worcester, Massachusetts.