Johnson was selected by the
Portland Trail Blazers with the 34th overall pick in the
2010 NBA draft. On August 2, 2010, he signed with the Trail Blazers after averaging 11.6 points and 4.2 assists in five summer league games. After a promising debut game on October 26, 2010, in which he scored six points with two rebounds and three assists in nine minutes, Johnson went on to have three double-figure scoring games in November, reaching a high in playing time of 22 minutes. However, his minutes and production declined over the following two months. On January 28, 2011, he was assigned to the
Idaho Stampede of the
NBA Development League. He was recalled on February 22, 2011, then reassigned on January 4, 2012, and recalled again on January 15, 2012. On February 27, 2012, he was waived by the Trail Blazers. He signed a ten-day contract with the
New Jersey Nets on April 9, 2012. On April 20, he signed with the Nets for the rest of the season. On September 29, 2012, Johnson signed with the
Orlando Magic. However, he was later waived by the Magic on October 23, 2012, after appearing in five preseason games. In December 2012, he joined Kazakh powerhouse team
BC Astana. After scoring 13 points in his debut for Astana on December 16, he was ruled out for the rest of the season with a serious knee injury. In March 2014, after passing a tryout period, Johnson signed with the Spanish team
CB Valladolid for the rest of the season. On July 7, 2014, Johnson joined the
Los Angeles Clippers for the
2014 NBA Summer League. On July 29, he signed with
Le Mans Sarthe Basket of France for the 2014–15 season. On October 29, 2014, he was waived by Le Mans after appearing in just five games. On April 2, 2015, he was acquired by the
Austin Spurs of the NBA Development League. On August 14, 2015, Johnson signed with
Göttingen of the German
Basketball Bundesliga. On September 15, 2015, he parted ways with Göttingen before the start of the season. In 2016, he joined the
Nevada Senators ABA team in
Reno, Nevada. ==Coaching career==