Johnson (1,80m x 85 kg) ha iniziato la sua carriera nella WHL. Dal 1998 al 2002 ha disputato per i Kootenay Ice complessivamente 280 incontri, realizzando 151 punti. Nel 2000 ha anche vinto il campionato WHL. Nel 2002 è passato ai Seattle Thunderbirds (35 partite, 32 punti), l’anno dopo ai Tri-City Americans (56 partite, 40 punti). Nel 2003 ha concluso la stagione con i Muskegon Lumberjacks nell’UHL. Con questa squadra si è aggiudicato nel 2004 il campionato UHL. Poi si è trasferito nell’ECHL, dove ha giocato con i Peoria Rivermen e South Carolina Stingrays complessivamente 62 partite di campionato, realizzando 35 punti. Inoltre ha raccolto tre presenze in AHL con la maglia dei Hershey Bears. Nel 2005 Johnson è ritornato ai Muskegon Lumberjacks. Con 54 punti in 66 incontri si è anche raccomandato per altre tre presenze in AHL con i Cleveland Barons.
Nel 2009 Johnson ha anche festeggiato il suo debutto con la maglia azzurra. Ai Mondiali B in Polonia è stato premiato come miglior difensore della rassegna iridata. Con otto punti (3 reti e 5 assist) si è piazzato al secondo posto nella classifica marcatori alle spalle del suo nuovo capitano Rolly Ramoser.