Да, это абсолютно возможно.
Вы могли бы сделать что-то вроде
{{#myarray}} {{! loop through array}}
{{#src}} {{! if you have src it must be an img}}
<img src="{{src}}">
{{/src}}
{{#text}} {{! if you have text is must be a paragraph}}
<p>{{text}}{{/p}}
{{/text}}
{{#href}}} {{! if you have an href is must be an anchor}}
<a href="{{href}}">{{label}}</a>
{{/href}}
{{/myarray}}
Нет причин расширять json, если поля уникальны для определенного типа выходных данных. Вы можете просто проверить, существует ли поле, и затем, если оно существует, оно должно быть выведено определенным образом.
Другая вещь, которую вы можете сделать вместо того, чтобы иметь поле 'type', это установить json с различными флагами, на которых будет основан ваш шаблон (например, 'is_image: true', 'is_anchor: true' и т. Д.).