Для сборки json вполне подходит printf и за 15 минут написанная функция для escape. С парзером JSON требуется не 15 минут, а 30.
Вариантные типы в С++ есть сто лет как.
Ну, вот у меня есть, н-р, опыт перевода системы заказчика с чужого решения на нашу систему методом реверса дельфячей библиотеки и написание своей drop-in-replacement либы на C. Зависимостями по ходу пьесы оно очень быстро и качественно обросло. 10 раз пожалел, что не продавил тогда C++ и не взял какую-то платформу