Miami Heat (2014-2019)Edit
Po przejściu undrafted w drafcie NBA 2014, Johnson dołączył do Miami Heat na 2014 NBA Summer League. 7 sierpnia 2014 roku podpisał z Żarami, ale później został zwolniony przez drużynę 25 października. 3 listopada został pozyskany przez Sioux Falls Skyforce z NBA Development League jako gracz afiliacyjny Heat.
W dniu 12 stycznia 2015 roku Johnson podpisał 10-dniowy kontrakt z Heat. Trzy dni później zadebiutował w NBA przeciwko Golden State Warriors, pojawiając się na 1:44 minuty i zdobywając dwa punkty z pary rzutów wolnych. 22 stycznia Heat zdecydowali się nie zatrzymywać Johnsona po wygaśnięciu jego kontraktu, a dwa dni później wrócił on do Skyforce. Ponownie dołączył do Żaru 29 stycznia, kiedy to podpisał kolejny 10-dniowy kontrakt z drużyną. 8 lutego podpisał dwuletnią umowę z Żarami. 2 marca miał najlepszy mecz w sezonie, w którym zdobył 26 punktów i 4 steale w wygranym 115-98 spotkaniu z Phoenix Suns. Pięć dni później zdobył 24 punkty i zagrał 44 minuty z ławki w meczu z Sacramento Kings, 114-109. Przebił ten znak minut grając we wszystkich 48 minutach finału sezonu Heat wygrali nad Philadelphia 76ers.
W dniu 9 lipca 2015 roku, Johnson został odsunięty na bok na sześć tygodni ze złamaną szczęką, którą poniósł podczas gry dla Heat podczas 2015 NBA Summer League. W dniu 9 grudnia 2015 roku zdobył season-high 20 punktów w przegranej z Charlotte Hornets. Później opuścił osiem meczów w grudniu z kontuzją barku. Johnson walczył z bólem lewego barku w styczniu, zanim przegapił dwa ostatnie mecze drużyny w tym miesiącu po poddaniu się bólowi. Po początkowych próbach uniknięcia operacji, Johnson ostatecznie poddał się 1 lutego 2016 roku, a zabieg wykluczył go z gry na trzy miesiące. Wrócił do akcji 1 maja, wchodząc z ławki na końcowe sześć minut zwycięstwa Heat w Game 7 nad Charlotte Hornets w pierwszej rundzie playoffs.
Po sezonie 2015-16 Johnson stał się zastrzeżonym wolnym agentem. 6 lipca 2016 roku otrzymał czteroletni, opiewający na 50 milionów dolarów arkusz ofertowy od Brooklyn Nets. Cztery dni później, Heat dopasowali ofertę kontraktu Nets, ponownie podpisując Johnsona. 7 grudnia 2016 roku zdobył career-high 27 punktów w przegranym 103-95 meczu z Atlanta Hawks. Przebił ten wynik 20 grudnia, zdobywając 32 punkty – najwięcej, ile kiedykolwiek zdobył rezerwowy Heat w meczu – w przegranym 136-130 spotkaniu z Orlando Magic po podwójnej dogrywce. Poprzedni rekord punktowy Heat przez rezerwowego wynosił 29 punktów, autorstwa Voshona Lenarda w 1999 roku.
30 grudnia 2017 roku Johnson zdobył 22 ze swoich season-high 31 punktów w trzeciej kwarcie wygranej Heat 117-111 nad Magic.
W dniu 23 grudnia 2018 roku Johnson zdobył 20 ze swoich 25 punktów w trzeciej kwarcie wygranej Heat 115-91 nad Magic.
Phoenix Suns (2019-2020)Edit
W dniu 6 lutego 2019 roku Johnson został przehandlowany, wraz z Wayne’em Ellingtonem, do Phoenix Suns w zamian za Ryana Andersona. 23 lutego zdobył season-high 29 punktów w przegranym 120-112 meczu z Atlanta Hawks. Dwa dni później zdobył 18 punktów przeciwko swojej byłej drużynie, Miami Heat, aby pomóc Suns złamać franchise-record 17-game losing streak, aby wygrać 124-121. 4 kwietnia 2019 roku, Johnson został wykluczony do końca sezonu po tym, jak stracił 10 meczów z bolesnością prawego kolana i przeszedł operację artroskopową. W dniu 9 lutego 2020 roku Johnson został zwolniony przez Phoenix Suns.
Brooklyn Nets (2020-obecnie)Edit
W dniu 24 czerwca 2020 roku Johnson podpisał kontrakt z Brooklyn Nets. 27 listopada ponownie podpisał kontrakt z Nets.
.