Google Gemini definitely has structured output.
In my experience, you can only use Gemini structured outputs for the most trivial of schemas. No integer literals, no discriminated unions and many more paper cuts. So at least for me, it was completely unusable for what I do at work.
On the upside, they seem to have fixed it: https://blog.google/innovation-and-ai/technology/developers-...
It's still far from what I'd expect should be supported.