The deal is worth $2.6 million and has $220,000 in guaranteed money, a source told ESPN's Bobby Marks. The balance of the contract will become fully guaranteed if Johnson is on the roster past Jan. 7.
Johnson, 38, last played in the NBA during the 2017-18 season. He recently was named the MVP of the Big3 and led his team, the Triplets, to the league championship.
He has averaged 16 points per game in 17 seasons in the NBA.
In his most recent NBA action, Johnson averaged 6.8 points on 40.6% shooting in 55 games for the Utah Jazz and Houston Rockets in 2017-18. In the 2018 playoffs, he saw his playing time cut to 6.8 minutes per game as the Rockets advanced to Game 7 of the Western Conference finals before falling to the Golden State Warriors.
He played for the Brooklyn Nets from 2012 to 2016, earning one of his seven career All-Star appearances.
Aside from the Pistons, Johnson also worked out earlier this month with the Milwaukee Bucks and Nets, according to ESPN and reports.