The Cyclones announced on Monday that Johnson, who averaged 10.4 points a game last season, will join the team next fall.
Johnson will sit out next season under the NCAA's transfer guidelines and be eligible to play the following two seasons.
Johnson, a 6-foot-7 forward, started all 30 games as a sophomore for the Trojans in 2018-19. He averaged 4.2 rebounds, scored 20 points three times and made a team-high 53 three-pointers.
Iowa State coach Steve Prohm says Johnson has scoring versatility and a "tremendous upside."