Библиотека Handlebars получает на вход шаблон и возвращает функцию
Функция эта принимает на вход данные (JS-объект, который получить из JSON можно получить с помощью функции JSON.parse)
Результат работы функции - это HTML-код, который ты через innerHTML пихаешь куда хочешь
Шаблон можно встроить в HTML через тег script, указав нужный ID, который потом передавать будешь handlebars
Примерно так работает большинство шаблонизаторов
JSON можно получить через Fetch API
Пример:
fetch('/api/jsondata')
.then(res => res.json())
.then(data => el.innerHTML(Handlebars.compile(data)))
.catch(err => throw err)