Miami Heat (2014-2019)Edit
Na ongetekend te zijn gebleven in de NBA draft van 2014, sloot Johnson zich aan bij de Miami Heat voor de NBA Summer League van 2014. Op 7 augustus 2014 tekende hij bij de Heat, maar werd later op 25 oktober door het team afgezworen. Op 3 november werd hij overgenomen door de Sioux Falls Skyforce van de NBA Development League als affiliate speler van de Heat.
Op 12 januari 2015 tekende Johnson een 10-daags contract bij de Heat. Drie dagen later maakte hij zijn NBA-debuut tegen de Golden State Warriors, waarbij hij 1:44 minuten verscheen en twee punten scoorde op een paar vrije worpen. Op 22 januari besloot de Heat Johnson niet te behouden na afloop van zijn contract en twee dagen later keerde hij terug naar de Skyforce. Hij keerde later op 29 januari terug bij de Heat toen hij nog een 10-daags contract tekende bij de ploeg. Op 8 februari tekende hij een tweejarig contract bij de Heat. Op 2 maart had hij een seizoensbeste wedstrijd met 26 punten en 4 steals in een 115-98 overwinning op de Phoenix Suns. Vijf dagen later scoorde hij 24 punten en speelde een recordaantal van 44 minuten op de bank toen hij de Heat hielp de Sacramento Kings te verslaan, 114-109. Hij overtrof dat minutenaantal door te spelen in alle 48 minuten van de seizoensfinale van de Heat overwinning op de Philadelphia 76ers.
Op 9 juli 2015 werd Johnson zes weken aan de kant gezet met een gebroken kaak die hij opliep tijdens het spelen voor de Heat tijdens de 2015 NBA Summer League. Op 9 december 2015 scoorde hij een season-high 20 punten in een verlies tegen de Charlotte Hornets. Hij miste later acht wedstrijden in december met een schouderblessure. Johnson vocht gedurende januari door zijn linkerschouderpijn voordat hij de laatste twee wedstrijden van de ploeg van de maand miste nadat hij aan de pijn was bezweken. Na aanvankelijk te hebben geprobeerd een operatie te vermijden, gaf Johnson uiteindelijk op 1 februari 2016 toe aan het idee, een procedure die hem drie maanden uitschakelde. Hij keerde terug in actie op 1 mei, komend van de bank voor de laatste zes minuten van de Heat’s Game 7 overwinning op de Charlotte Hornets in de eerste ronde van de play-offs.
Na het seizoen 2015-16 werd Johnson een restricted free agent. Op 6 juli 2016 ontving hij een offer sheet van vier jaar en 50 miljoen dollar van de Brooklyn Nets. Vier dagen later evenaarde de Heat het contractaanbod van de Nets en tekende Johnson opnieuw. Op 7 december 2016 scoorde hij een carrière-high 27 punten in een 103-95 verlies tegen de Atlanta Hawks. Hij overtrof dat cijfer op 20 december, met 32 punten – het meeste dat een Heat-reserve ooit in een wedstrijd heeft gescoord – in een 136-130 dubbel overtime-verlies tegen de Orlando Magic. Het vorige Heat scoringsrecord door een reserve was 29 punten, door Voshon Lenard in 1999.
Op 30 december 2017 scoorde Johnson 22 van zijn season-high 31 punten in het derde kwart van de Heat’s 117-111 overwinning op de Magic.
Op 23 december 2018 scoorde Johnson 20 van zijn 25 punten in het derde kwart van de 115-91 zege van de Heat op de Magic.
Phoenix Suns (2019-2020)Edit
Op 6 februari 2019 werd Johnson, samen met Wayne Ellington, verhandeld aan de Phoenix Suns in ruil voor Ryan Anderson. Op 23 februari scoorde hij een season-high 29 punten in een 120-112 verlies tegen de Atlanta Hawks. Twee dagen later scoorde hij 18 punten tegen zijn voormalige team, de Miami Heat, om de Suns te helpen een franchise-record 17-game losing streak te doorbreken om 124-121 te winnen. Op 4 april 2019 werd Johnson uitgesloten voor de rest van het seizoen na het missen van 10 wedstrijden met pijnlijke rechterknie en het ondergaan van een arthroscopische operatie. Op 9 februari 2020 werd Johnson afgezwaaid door de Phoenix Suns.
Brooklyn Nets (2020-heden)Edit
Op 24 juni 2020 tekende Johnson bij de Brooklyn Nets. Op 27 november tekende hij opnieuw bij de Nets.