Nach dem Ende seiner akademischen Ausbildung im Staat New York zog John McPherson 1859 nach Jersey City um. Er betätigte sich dort in der Landwirtschaft und im Viehhandel. Von 1864 bis 1870 gehörte er der Stadtregierung (Board of Aldermen) von Jersey City an, wobei er drei Jahre lang als deren Präsident fungierte. Zwischen 1871 und 1973 saß er im Senat von New Jersey; bei der Präsidentschaftswahl 1876 war er im Electoral College demokratischer Wahlmann für Samuel J. Tilden; Präsident wurde letztlich aber der RepublikanerRutherford B. Hayes.
Ab dem 4. März 1877 nahm John McPherson sein Mandat im Senat der Vereinigten Staaten wahr, nachdem er zuvor den republikanischen Amtsinhaber Frederick T. Frelinghuysen, später US-Außenminister, besiegt hatte. Nach zwei Wiederwahlen in den Jahren 1883 und 1889 verblieb er bis zum 3. März 1895 im Senat, wo er unter anderem dem Marineausschuss (Committee on Naval Affairs) vorstand.