Johan Hafström, son till bankdirektör Samuel Herman Hafström, föddes i Helsingborg år 1838. 1855 slutade han skolan och avlade studentexamen vid universitetet i Lund den 15 december. 1864 tog han medicine kandidatexamen och 1867 medicine licentiatexamen. Han disputerade 1868 på en avhandling om förlossningstången och fick titeln medicine doktor. Hafström hade inledningsvis en del små förordnanden men redan från början var han aktiv vid hälsobrunnen Hälsan, tidigare "Hjelmshultsmöllan". Denna brunn hade han köpt året innan han blev färdig läkare. 1873 fick han Kungliga sundhetskollegiets förordnade vid Hälsobrunnen och 1880 skrevs ett nytt av Kungliga medicinalstyrelsen. Hälsobrunnen såldes sedan till Konsul Persson.
1871 kommer Hafström för första gången i kontakt med hovet då prins Gustaf insjuknade på Sofiero. 1877 utnämns han till Lifmedicus, och under många år därefter tjänstgjorde Hafström hos Oscar II och Drottning Sofia under sommarvistelserna på Sofiero, tidvis även på utrikes resor. Förutom smärre medicinska skrifter utgav han sina dagboksanteckningar från resor till Algeriet, Tunis o Sicilien (1892), Spanien, Gibraltar och Tanger (1900) samt Dalmatien, Montenegro, Bosnien o Herzegovina (1902).
Dr Hafström gifter sig 1867 med Hulda Elfrida Wennerberg (1838-1867), dotter till Johan Henrik Wennerberg och Anna Bothilda (född Kobb). Tillsammans får de dottern Ebba. 1880 blir han utnämnd till Stadsläkare i Helsingborg. Han arbetade dessutom som skolläkare och som oavlönad barnläkare vid Barnsjukhuset i Helsingborg 1888-1906. Han var ledamot av stadsfullmäktige i Helsingborg i 30 år och vid Malmöhus läns landsting i 25 år. För sina medborgerliga förtjänster erhöll Hafström bl.a. Wasaordern och Nordstjärneordern samt utnämndes till ordensmästare i frimurarelogen Kärnan, Helsingborg.