It comes ultimately from Hebrew "Yochannon", via Greek Ioannes, from which German "Johannes" and Spanish "Juan" are very clear natural derivatives of that, given Greek had an h which was later lost (though the German borrowing must have cone before that) and Greek/Latin IPA j becomes IPA x in Spanish, and O to U stem-change is also quite common in Spanish. It seems to me though, that the Italian SHOULD have become "Gioani", unless there is some pattern in Italian that I am unaware of.
There is indeed a pattern from Latin to Italian which explains this.
/oːa/ > /oua/ > /owa/ > /oβa/ > /ova/
Early Romance did not like having two different vowels next to each other with nothing in between (in linguistic terms, "in hiatus"). So a glide consonant was inserted between them. If the first vowel was /o/ or /u/, this glide tended to be a /w/ sound. (This article has more information and examples in different Romance languages.)
Then the /w/ phoneme evolved into /v/, probably through /β/. This is a well-documented process which produced most of the /v/'s in Italian, such as the initial sound in vino; in Classical Latin, that initial consonant was a /w/.
Evan(s) and Ivan also come from Ioannes, so whatever happened did not happen only in Italian. (Forget about the h; most Greek dialects lost it early, and Latin also lost it, and the Romance languages that gained it by other processes also lost it. I don't know how it got there in German, but it's entirely possible that it was learned, i. e. copied from the Classical Latin rendering of the name, as was the case with the name of Christ.)
Italian got the name from Latin. During the long evolution of Latin, the sounds we see today rendered orthographically as b and v changed a lot. At times there was actually no v (as in English /v/); the leter V was used to indicate /u/ as well as /w/ (some people prefer to say those were just variants of a single sound /u/, but that's of no consequence here).
Now at some point Latin /w/ changed into /β/ (a voiced bilabial fricative) and then into /v/, in certain contexts. At this point I'm guessing that more or less the same process that gave Spanish Juan its medial /u/ (phonetically [w]) and Welsh Ifan (= Evan) its /v/ also gave Italian Giovanni its /v/. It looks like there was an insertion (epenthesis) of a glide [w] between /o/ and /a/. This is to be expected as Latin and Romance languages historically tend toward CV syllables and dislike hiatus (so adjacent vowels in different syllables tend to be simplified, turned into diphthongs or separated by a consonant).
In any case it must also be taken into account that proper names often evolve (phonetically) in unpredictable ways. This is especially true of classical and biblical names.
Latin Ioannes > Giovanni is the exact counterpart of Latin Genoa > Genova.