I think it's fine as actually you won't ever call him James Jonathan - he'll presumably either be James (most of the time), James Surname a bit, James Jonathan Surname very occasionally if he has to say his full name or JJ (or something else completely) for short.
He'll end up being called Jimmy John or JJ anyway. I don't know a single James who is called by his name especially from young teen to adult years, unless he is on TV. This thread has made me realise I have a work friend I've got close to, her son is JJ he's 25..I don't even know his real name. He's just JJ everyone calls him that. I'm curious now