Nacque dal conte
Palatino Stephan Zápolya e dalla principessa Hedvig di
Cieszyn (
Slesia). Dopo la morte di
Luigi II capeggiò un gruppo di nobili ungheresi che, nel raduno dei nobili di Rákos, sostennero che nessuno straniero poteva ambire al trono d'
Ungheria. Il pretendente straniero era l'arciduca d'Austria
Ferdinando I d'Asburgo, cognato del defunto re e fratello dell'imperatore
Carlo V. Giovanni fu incoronato l'11 novembre
1526 dalla maggior parte dei nobili ungheresi, che ritenevano che il dominio degli Asburgo, da tempo in guerra con i
Valois, non gli avrebbe portato nessun aiuto nelle guerre contro gli Ottomani; anzi avrebbe potuto coinvolgerli in uno dei fronti di guerra in occidente. In dicembre Ferdinando fu incoronato a sua volta
re di Boemia e l'anno successivo cercò di conquistare l'Ungheria, sconfiggendo Giovanni nella battaglia di
Tokaj.