White House hopeful Donald Trump savaged US ally Japan Friday, expressing frustration that Washington must defend the Asian nation but that if the United States is attacked, Japanese can "sit home and watch Sony television."

The Republican nominee launched the broadside during a speech in Iowa where he reprised his criticism of countries that do not pull their weight in terms of financial contributions to NATO, and of countries like Japan and South Korea that receive US protection.

"You know we have a treaty with Japan, where if Japan is attacked, we have to use the full force and might of the United States," Trump said.

"If we're attacked, Japan doesn't have to do anything. They can sit home and watch Sony television, OK?"

Trump added that the United States protects Japan, South Korea, Germany, Saudi Arabia and other nations, and "they don't pay anything near what it costs."

"They have to pay. Because this isn't 40 years ago," he added.

"It's got to be a two-way street."

Japan's alliance with Washington has been the bedrock of its defense since the end of World War II, and the country still hosts 47,000 US troops.

Trump stirred international concern in April by stressing that NATO member states should begin paying their "fair share," and that Japan and South Korea must be prepared to arm themselves to deter a threat from North Korea.

"It could be that Japan will have to defend itself against North Korea," Trump said Friday.

"You always have to be prepared to walk," Trump said about getting allies to carry their financial weight.

"I don't think we'll walk, I don't think it's going to be necessary. It could be, though."