John McKinnon was educated in New Zealand at Nelson College and Victoria University of Wellington, and in the United Kingdom at the London School of Economics and Political Science. He joined the then Ministry of Foreign Affairs in New Zealand in May 1974. In 1975, he was sent to Hong Kong to undertake two years of Chinese language training, following which he was assigned to the New Zealand Embassy in Beijing as Second Secretary.
His subsequent overseas assignments with the New Zealand foreign service were in Washington, Canberra, and New York (this last in the 1990s when New Zealand was serving a term on the United Nations Security Council). McKinnon was the Director of the External Assessments Bureau in the Department of the Prime Minister and Cabinet from 1995 to 2000.
He served twice as New Zealand Ambassador to China and Mongolia, the first time from 2001 to 2004; the second time from 2015 to 2018. In between these two postings, he was successively a senior official in the Ministry of Foreign Affairs and Trade, Secretary of Defense, and Executive Director of the Asia New Zealand Foundation. McKinnon is now a Senior Fellow of the Centre for Strategic Studies at Victoria University.