I think that having only initials as a legal first name will create a lot of problems later in life. People will ask what it stands for (when registering for classes, signing legal forms, etc), and it can cause problems when applying for a license. Or the person will simply have to explain a thousand times over "no, that's my real first name. Just JD. It's not my initials".
J-Dee sounds like a wanna-be rap star's made up name, like Jay Z. The hyphen will create problems later.
Jaydee sounds like a cute kindergarten girl's name.
Give your son a real name, like John David, or something unique like Josiah Dalton, or give him your father's actual name, and you can affectionately refer to him as JD if you wish.
Think about how your son's name will appear later when he's a young man, not just as a tiny new baby.
And congratulations to you!