* Antal matcher och mål i seniorlag räknas endast för de inhemska ligorna och är korrekt per den 27 oktober 2023. ** Antal landskamper och mål är korrekta per den 6 juni 2023.
Johnsson inledde sin karriär i Ränneslövs GIF.[2] När han var 15 år 2005 började han i Halmstads BK.[3] 2008 fick Johnsson hoppa in i en match i Allsvenskan för Halmstads BK och spelade en halvlek efter att Magnus Bahne skadat sig.[4] 2009 gjorde han sina första matcher från start, totalt tre stycken, och vann dessutom U21-allsvenskan med HBK:s andralag. Säsongen 2010 konkurrerade han om målvaktsplatsen i HBK med Robin Malmkvist och spelade totalt nio matcher i Allsvenskan. Året därpå var han till en början andramålvakt bakom Nauzet Perez, men blev ordinarie efter att denne lämnat klubben tidigt under säsongen.[5]
Den 12 juli 2019 värvades Johnsson av danska FC Köpenhamn, där han skrev på ett fyraårskontrakt.[6] Den 31 augusti 2023 värvades Johnsson av franska Ligue 2-klubben Bordeaux, där han skrev på ett tvåårskontrakt.[7]
Landslagskarriär
Den 21 augusti 2007 fick Johnsson debutera i juniorlandslaget i en match mot Ukraina (3–3).[8] Han debuterade 2009 i U21-landslaget.
Han blev under 2011 förstamålvakt i U21-landslaget och i januari 2012 fick han debutera i A-landslaget, i en träningslandskamp mot Qatar.