In both scenarios, the second option is the technically correct choice: Johnson is 0 years old, or Johnson is a 0-year-old newborn boy.
I say technically correct because, though these phrases are grammatically correct, they are unnatural: both '0-year-old' and 'is zero years old' are unusual in almost all contexts. Children younger than one year of age almost always have their ages counted in months, weeks, days, or even hours. It is common to hear mothers talk about their 'three-month old child,' or say that their baby 'is just two days old.'
So long as there is more than one of whatever unit of time is in question, more complex or mixed units are also used: '14 weeks,' 'three and a half months,' '18 months,' and 'a year and a half,' are all commonly used to describe the age of a child. Thus, 'half a year' and 'half-year-old' are much, much less common than 'six months' and 'six-month-old.'
Also worth noting is that the word 'newborn' is usually reserved for a very young baby, often less than a few weeks old. If you told me your child was a newborn, it would already suggest they are far less than a full year old.