Johnson is a fantastic athlete. Good outside shooter, hardnosed defender. But that's an interesting contract for a player whom I'd argue isn't proven yet. He was undrafted, ascended from the D-League to the Heat in 2015. He didn't get much playing time in the playoffs with the Heat a few months ago.
Further, they're creating somewhat of a logjam with their roster.
PG: Lin/ LaVert
SG: Johnson/ Whitehead / Kilpatrick
Not too big of a concern I guess. Rookies generally don't get much PT unless they're on a bad team like Brooklyn, but they'll get less developmental minutes with Johnson and Lin on board.
Miami can also still match, but I'm guessing they won't. Apparently the final two years of the contract are $18 million and $19 million in guaranteed money.