dude! In Postman, your JSON looks correct, but are you sure that this.puppy.race is really not undefined? You don't need to convert your object, because the Angular HTTP Client will handle that for you. Let Angular handle it.
const puppyJson = {
id: null,
puppyId: this.puppy.puppyId,
name: this.puppy.name,
color: this.puppy.color,
weight: this.puppy.weight,
height: this.puppy.height,
image: this.puppy.image,
characteristic: this.puppy.characteristic,
race: { id: null, race: this.puppy.race?.race },
price: this.puppy.price
};
You can also debug your object to make sure everything looks correct before sending it.
console.log(puppyJson)