Как правило, да, кэширование как JSON было бы более эффективным с точки зрения хранения, чем объекты C ++.
Единственное исключение будет, если у вас есть объект с кучей, например, полей int, и вы преобразовали его в представление JSON (либо «объект» JSON, либо «массив» JSON) в качестве символьных значений. Представление символов JSON не может быть столь же компактным, как двоичные поля, все сжато в одном объекте.
Но если вы говорите об объектах, которые содержат много указателей на другие объекты (то есть типичное представление "объекта" концептуального JSON), то фактический JSON, вероятно, будет в 2–8 раз более компактным.