That is correct, but you can also specify layout
and/or type
in front matter to target a specific template.
Or you could conditionally perform the JSON->HTML conversion if the page bundle has a JSON resource.
I would try to avoid using a shortcode if possible; it’s just one more moving part.
There are a lot of ways to approach this. If I were you I would create a small prototype using the content structure above.